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
命名空间: 并发