parallel_for_each 函数

parallel_for_each 以并行方式将指定函数应用于范围内的每个元素。 除了并行对元素执行迭代及迭代的顺序未指定,语义上等效于 for_each 命名空间中的 std 函数。 实参 _Func 必须支持窗体 operator()(T) 的函数调用运算符,其中形参 T 是正在进行迭代的容器的项类型。

template <
   typename _Iterator,
   typename _Function
>
void parallel_for_each(
   _Iterator_First,
   _Iterator_Last,
   const _Function& _Func
);

template <
   typename _Iterator,
   typename _Function,
   typename _Partitioner
>
void parallel_for_each(
   _Iterator_First,
   _Iterator_Last,
   const _Function& _Func,
   _Partitioner&& _Part
);

参数

  • _Iterator
    用于在容器上迭代的迭代器的类型。

  • _Function
    将应用于该范围内的每个元素的函数的类型。

  • _Partitioner

  • _First
    寻址要包括在并行迭代中的第一个元素位置的迭代器。

  • _Last
    寻址要包括在并行迭代中最后一个元素的下一位置的迭代器。

  • _Func
    用户定义的函数对象应用于该范围中的每个元素。

  • _Part
    对对象分区的引用。 论点可能是 const&constsimple_partitionerauto_partitionerstatic_partitioner&const&affinity_partitioner**&**其中一个,如果使用对象,affinity_partitioner 引用必须是非 Const 左值引用,因此算法,可存储状态,将来循环可以重用。

备注

auto_partitioner 为重载使用,但没有显式的分区。

迭代器不支持随机访问,只支持 auto_partitioner

有关详细信息,请参阅并行算法

要求

**标头:**ppl.h

**命名空间:**并发

请参见

参考

concurrency 命名空间