parallel_for 函数
parallel_for 循环访问一个索引范围,并在每次迭代时以并行方式执行用户提供的函数。
template <
typename _Index_type,
typename _Function,
typename _Partitioner
>
void parallel_for(
_Index_type_First,
_Index_type_Last,
_Index_type_Step,
const _Function& _Func,
_Partitioner&& _Part
);
template <
typename _Index_type,
typename _Function
>
void parallel_for(
_Index_type_First,
_Index_type_Last,
_Index_type_Step,
const _Function& _Func
);
template <
typename _Index_type,
typename _Function
>
void parallel_for(
_Index_type_First,
_Index_type_Last,
const _Function& _Func,
const auto_partitioner& _Part = auto_partitioner()
);
template <
typename _Index_type,
typename _Function
>
void parallel_for(
_Index_type_First,
_Index_type_Last,
const _Function& _Func,
const static_partitioner& _Part
);
template <
typename _Index_type,
typename _Function
>
void parallel_for(
_Index_type_First,
_Index_type_Last,
const _Function& _Func,
const simple_partitioner& _Part
);
template <
typename _Index_type,
typename _Function
>
void parallel_for(
_Index_type_First,
_Index_type_Last,
const _Function& _Func,
affinity_partitioner& _Part
);
参数
_Index_type
用于迭代的索引类型。_Function
每次迭代时将执行的函数的类型。_Partitioner
可分区所提供的范围分区程序的类型。_First
要包含在迭代中的第一个索引。_Last
索引一超过了要包含在迭代中的最后一个索引。_Step
从 _First 至 _Last 迭代时的步长值。 此步长必须是正数。 如果该步骤小于 1,则会引发 invalid_argument。_Func
要在每次迭代时执行的函数。 这可以是 lambda 表达式、函数指针或支持函数调用运算符某个版本的任意对象,具有签名 void operator()(_Index_type**)**。_Part
对对象分区的引用。 论点可能是 const&,const,simple_partitionerauto_partitionerstatic_partitioner&const& 或 affinity_partitioner**&**其中一个,如果使用对象,affinity_partitioner 引用必须是非 Const 左值引用,因此算法,可存储状态,将来循环可以重用。
备注
有关详细信息,请参阅并行算法。
要求
**标头:**ppl.h
**命名空间:**并发