我有一个结构 vector - 假设结构类似于:
struct foo {
int bar1;
int bar2;
}
现在我想更新 vector 的每个元素,更新是将 bar1
乘以 2。
执行此操作的简单方法是遍历 vector 的每个元素,但是否有更好的方法来执行此操作,也许是使用带有 c++11 lambda 函数的库函数?
最佳答案
您可以使用 std::for_each
为此:
#include <algorithm>
#include <vector>
...
std::vector<foo> v;
....
std::for_each(v.begin(), v.end(), [](foo& f) { f.bar1 *=2; });
它是否比普通循环更清晰/更简单是另一回事。在这种简单的情况下,基于普通范围的循环可能是更好的选择:
for (auto& f : v) f.bar1 *= 2;
关于c++ - 更新 C++ vector 中的所有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17335825/