只有当值在某些限制范围内时,我才必须将2D vector
的值复制到另一个2D vector
。
为此,我写了。
[[nodiscard]] std::vector<std::vector<double>>
GetDataAfterApplyingLimits(const std::vector<std::vector<double>>& input)
{
std::vector output(
input.size(), std::vector<double>(input[0].size(), MISSINGVALUE));
for (size_t i = 0; i < input.size(); i++)
{
for (size_t j = 0; j < input[i].size(); j++)
{
if (input[i][j] >= min_value && input[i][j] <= max_value)
output[i][j] = input[i][j];
}
}
return output;
}
我使用input[0].size()
来初始化上面输出vector
的列大小。列维度不是固定的。
实现这一目标的最佳途径是什么?
3条答案
按热度按时间esyap4oy1#
您可以在每次迭代中创建一个空向量,并在每次迭代中添加到输出向量中。
就像
wqnecbli2#
要动态确定输出向量的列大小,您可以从标头使用max_element算法来查找输入向量中内部向量的最大大小。以下是GetDataAfterApplyingLimits函数的更新实现,它可以完成此操作:
cmssoen23#
如果输入的元素(向量)大小不同...