c++ - 如何在 std::array<> 上使用 std::for_each 并在每个元素上应用 lambda 函数?

标签 c++ arrays c++11

我想将这三个功能结合在一起:

  • std::for_each
  • 标准::数组
  • lambda 函数

进入一个使用 C++11 的示例。

std::for_each(arr, arr + sizeof(arr) / sizeof(int), [&](int x) { std::cout<<x<<" ";});

如何将该代码转换为对 std::array 进行操作?

最佳答案

你想要array::beginarray::end数组的前两个参数 for_each() , 这将标记数组的开始和结束。

然后第三个参数是一个函数,在你的例子中是一个 lambda 函数,像这样:

std::for_each(myarray.begin(), myarray.end(), [](int x) { std::cout << x <<" "; });

PS:对于更通用的方法,您可以使用 std::begin()std::end() ,因此如果容器发生变化(例如从 std::arraystd::vector),您可以保持此代码不变。

关于c++ - 如何在 std::array<> 上使用 std::for_each 并在每个元素上应用 lambda 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53596657/

相关文章:

c++ - 为什么我们不能在模板特化的开始/中间使用可变参数模板(以及如何模拟)?

c++ - 我可以用 bind1st/2nd 替换 boost::bind 吗?

java - 如何从列表转换为数组?安卓

c++ - 我当前的代码无法在MS Visual Studio中正常运行?

php - 如何将多个数组元素添加到转置结构中?

C:判断一个二维数组是否降序不包含0

C++ 可变参数模板总和

c++ - 如何更改仅 header 类中类的所有实例的行为

c++ - 将函数引用作为通用引用传递

c++ - 如何在c/c++中将文件从一个目录复制到另一个目录