次の方法で共有


parallel_sort 関数

nondescending 順序に、またはバイナリ述語によって指定される命令の条件に従って指定された範囲の要素を並行して配置します。この関数は、比較型、不規則な並べ替え、埋め込み先であること std::sort に意味的に似ています。

template<
   typename _Random_iterator
>
inline void parallel_sort(
   const _Random_iterator &_Begin,
   const _Random_iterator &_End
);

template<
   typename _Random_iterator,
   typename _Function
>
inline void parallel_sort(
   const _Random_iterator &_Begin,
   const _Random_iterator &_End,
   const _Function &_Func,
   const size_t _Chunk_size = 2048
);

パラメーター

  • _Random_iterator
    入力範囲の反復子の型。

  • _Function
    バイナリ比較のファンクタの種類。

  • _Begin
    並べ替えの対象となる範囲の先頭の要素の位置を示すランダム アクセス反復子。

  • _End
    並べ替えられたする範囲の最後の要素 1 を超える位置を示すランダム アクセス反復子。

  • _Func
    順序で連続する要素を満たす比較の要件を定義するユーザー定義の述語関数オブジェクト。バイナリ述語が満たされなかった場合に完了したら 2 個の引数を受け取り、 truefalse を返します。この比較子関数は、シーケンスの要素のペアに厳密弱順序を設定する必要があります。

  • _Chunk_size
    並列実行の 2 に分割するチャンクの mimimum のサイズ。

解説

最初のオーバーロードはバイナリ比較子 std::lessを使用します。

2 番目のオーバーロードされた T 使用が入力範囲の要素の型として定義 bool _Func(T, T) が必要である指定されたバイナリ比較子。

アルゴリズムは 2 個のチャンクに入力範囲に分割して、実行用の 2 種類のサブ チャンクに順次各チャンクを並列に分割します。省略可能な引数 _Chunk_size でアルゴリズムに表示にできますが、連続してください。サイズの < _Chunk_size ハンドルのチャンク使用できます。

必要条件

ヘッダー: ppl.h

名前空間: の同時実行

参照

関連項目

concurrency 名前空間