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

tom*_*myk 3 arrays foreach lambda c++11

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

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

// apply data offset
const double OFFSET = 0.123;
data += OFFSET;
Run Code Online (Sandbox Code Playgroud)

它可以用例如std :: for_each和lambda完成.

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

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

Tar*_*ama 8

有时只是编写循环比其他任何东西更清晰:

for (auto& n : data) n += OFFSET;
Run Code Online (Sandbox Code Playgroud)