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&,const,simple_partitionerauto_partitionerstatic_partitioner&const& 或 affinity_partitioner**&**其中一个,如果使用对象,affinity_partitioner 引用必须是非 Const 左值引用,因此算法,可存储状态,将来循环可以重用。
备注
auto_partitioner 为重载使用,但没有显式的分区。
迭代器不支持随机访问,只支持 auto_partitioner。
有关详细信息,请参阅并行算法。
要求
**标头:**ppl.h
**命名空间:**并发