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
    对分区程序对象的引用。 参数可以是一个 constauto_partitioner&conststatic_partitioner&constsimple_partitioner&affinity_partitioner& ,如果使用 affinity_partitioner 对象,引用必须是一个非常量左值引用,因此,算法可以存储将来的循环的状态可以重用。

备注

auto_partitioner 为重载将使用,没有显式的分区程序。

对于不支持随机访问迭代器,因此,只有 auto_partitioner 支持。

有关更多信息,请参见 并行算法

要求

**标头:**ppl.h

命名空间: 并发

请参见

参考

concurrency 命名空间