次の方法で共有


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 のオブジェクトを使用すると、参照非定数の左辺値の参照である必要があります constauto_partitioner&conststatic_partitioner&constsimple_partitioner& または affinity_partitioner& 1 のいずれかです。

解説

auto_partitioner は明示パーティショナーなしのオーバーロードに使用されます。

ランダム アクセスをサポートしない反復子用に auto_partitioner のみがサポートされます。

詳細については、「並列アルゴリズム」を参照してください。

必要条件

ヘッダー: ppl.h

名前空間: の同時実行

参照

関連項目

concurrency 名前空間