并行扩展
来自 cppreference.cn
< cpp | experimental
C++ 并行扩展,ISO/IEC TS 19570:2015 定义了 C++ 标准库的以下新组件
目录 |
[编辑] 执行策略
并行 TS 描述了三种执行策略:sequential、parallel 和 parallel+vector,并提供了相应的执行策略类型和对象。用户可以通过使用相应类型的执行策略对象调用并行算法来静态选择执行策略,或者通过使用类型擦除的 execution_policy
类来动态选择。
实现可以定义额外的执行策略作为扩展。使用实现定义的类型的执行策略对象调用的并行算法的语义是实现定义的。
执行策略类型 (类) | |
全局执行策略对象 (常量) | |
动态执行策略 (类) | |
测试一个类是否表示执行策略 (类模板) |
[编辑] 异常列表
并行执行期间引发的异常 (类) |
[编辑] 现有算法的并行化版本
TS 提供了来自 <algorithm>、<numeric> 和 <memory> 的以下 69 种算法的并行化版本
[编辑] 新算法
定义于头文件
<experimental/algorithm> | |
类似于 std::for_each,但返回 void (函数模板) | |
将函数对象应用于序列的前 n 个元素 (函数模板) | |
定义于头文件
<experimental/numeric> | |
(并行 TS) |
类似于 std::accumulate,但顺序不定 (函数模板) |
类似于 std::partial_sum,从第 ith 个和中排除第 ith 个输入元素 (函数模板) | |
类似于 std::partial_sum,在第 ith 个和中包含第 ith 个输入元素 (函数模板) | |
(并行 TS) |
应用函子,然后顺序不定地归约 (函数模板) |
应用函子,然后计算互斥扫描 (函数模板) | |
应用函子,然后计算包含扫描 (函数模板) |