c++ - C++ 中的并行循环

标签 c++ c++11 for-loop concurrency c++14

我想知道是否有一种简单、直接的方式来让循环(例如 for 和基于范围的 for 循环在 C++ 中并行计算)。你将如何实现这样的事情?从 Scala 我知道 mapfilterforeach 函数,也许也可以并行执行这些函数?有没有一种简单的方法可以在 C++ 中实现这一点?

我的主要平台是 Linux,但如果它可以跨平台工作就更好了。

最佳答案

借助 C++17 中的并行算法,我们现在可以使用:

std::vector<std::string> foo;
std::for_each(
    std::execution::par,
    foo.begin(),
    foo.end(),
    [](auto&& item)
    {
        //do stuff with item
    });

并行计算循环。第一个参数指定execution policy

关于c++ - C++ 中的并行循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36246300/

相关文章:

c++ - 是否需要标准分配器来分配连续内存?

c++ - 您将如何使用 C++11 初始化函数结果的 const vector ?

c++ - 编译器是否能够避免分支指令?

java - Java 中 for 循环的问题

java - 为什么我的 for 循环不能与数组一起正常工作?

c++ - 将正斜杠添加到字符串

c++ - 使用 noexcept 的函数指针的重载解析

r - 如何避免矩阵计算中的双for循环

c++ - 在 Mac OS X 上使用 cmake 链接到框架

c++ - 有条件地初始化结构字段 - 仅当它存在于该结构中时