parallel_for_each 関数
parallel_for_each は、指定された関数を範囲内の各要素に並列で適用します。 意味的には std 名前空間の for_each 関数と同等ですが、要素に対する反復処理が並列で行われる点、および反復処理の順序が指定されていない点が異なります。 引数 _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
並列反復処理に含まれる 1 つ目の要素の位置を指定する反復子。_Last
並列反復処理に含まれる最後の要素の 1 つ前の位置を指定する反復子。_Func
範囲内の各要素に適用されるユーザー定義関数オブジェクト。_Part
パーティショナー オブジェクトへの参照。 引数は、アルゴリズムを再利用するには、その後のループの状態を保存できるように affinity_partitioner オブジェクトを使用すると、非 const 参照、lvalue 参照である必要 constauto_partitioner&、conststatic_partitioner&、constsimple_partitioner& または affinity_partitioner& の 1 種類があります。
解説
auto_partitioner は 明示パーティショナーなしでオーバーロードで使用されます。
ランダム アクセス反復子をサポートしない用 auto_partitioner のみがサポートされます。
詳細については、「並列アルゴリズム」を参照してください。
必要条件
ヘッダー: ppl.h
名前空間: concurrency