我想将这三个功能结合在一起:
- std::for_each
- 标准::数组
- lambda 函数
进入一个使用 C++11 的示例。
std::for_each(arr, arr + sizeof(arr) / sizeof(int), [&](int x) { std::cout<<x<<" ";});
如何将该代码转换为对 std::array
进行操作?
最佳答案
你想要array::begin和 array::end数组的前两个参数 for_each()
, 这将标记数组的开始和结束。
然后第三个参数是一个函数,在你的例子中是一个 lambda 函数,像这样:
std::for_each(myarray.begin(), myarray.end(), [](int x) { std::cout << x <<" "; });
PS:对于更通用的方法,您可以使用 std::begin()
和 std::end()
,因此如果容器发生变化(例如从 std::array
到 std::vector
),您可以保持此代码不变。
关于c++ - 如何在 std::array<> 上使用 std::for_each 并在每个元素上应用 lambda 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53596657/