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

标签 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; });

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

最佳答案

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

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

关于arrays - 修改 std::array 所有元素的优雅而有效的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33869488/

相关文章:

javascript - 如何删除重复结果并合并在 mySQL 查询中具有相似属性的对象?

c++ - 标准库实现专门化以具有子概念的概念为模板的函数是否合法?

php - 返回 foreach 循环的 else 语句

Ruby,从组合中获取唯一切片

python - 如何在 Python 中将字节数组转换为位图图像?

javascript - 如何使用 JSON 在表中显示空白记录?

c++ - 模板可变参数和显式实例化

c++ - std::error_code 和 std::error_condition 从相同的值和相同的类别构造总是等价的吗?

c# - 如何从 Parallel.ForEach 循环内部抛出异常?

javascript - 通过循环和数组减少 If 语句