我想将这三个功能结合在一起:
进入一个使用 C++11 的示例。
std::for_each(arr, arr + sizeof(arr) / sizeof(int), [&](int x) { std::cout<<x<<" ";});
Run Code Online (Sandbox Code Playgroud)
如何转换该代码以进行操作std::array?
您需要 数组的 array::begin和 array::end作为 的前两个参数for_each(),这将标记数组的开始和结束。
那么第三个参数是一个函数,在你的例子中是一个 lambda 函数,如下所示:
std::for_each(myarray.begin(), myarray.end(), [](int x) { std::cout << x <<" "; });
Run Code Online (Sandbox Code Playgroud)
PS:对于更通用的方法,您可以使用std::begin()and std::end(),这样如果容器发生变化(例如从std::array到std::vector),您可以保持此代码不变。
| 归档时间: |
|
| 查看次数: |
4142 次 |
| 最近记录: |