优雅而有效的方法来修改std :: array的所有元素

时间:2015-11-23 11:04:14

标签: arrays c++11 foreach lambda

我想为存储在std :: array容器中的所有数据添加一些偏移量:

std::array<double, 256> data;
ReadData(data);

// apply data offset
const double OFFSET = 0.123;
data += OFFSET;

可以用例如std :: for_each和lambda。

std::for_each(data.begin(), data.end(), [=OFFSET](auto& n){ n += OFFSET; });

我想知道是否有一种更优雅,更简洁,更有效的方法来实现这一目标。

1 个答案:

答案 0 :(得分:8)

有时候只是编写循环比其他任何东西都清楚:

for (auto& n : data) n += OFFSET;