次の方法で共有


parallel_sort 関数

指定された範囲の要素を、降順以外の順序、または二項述語で指定された順序の基準に従って、並列に配置します。 この関数は、比較ベースで不安定なインプレース並べ替えという点で 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 が入力 span 要素の型である bool _Func(T, T) シグネチャを持つ必要がある指定されたバイナリ比較子。

アルゴリズムは 2 個のチャンクに入力範囲の除算を実行するための 2 種類のサブ チャンクに代入される各チャンクを並列に分割します。 省略可能な引数が _Chunk_size アルゴリズムに示すために、逐次的に必要です _Chunk_size サイズ < ハンドルのチャンク使用できます。

必要条件

ヘッダー: ppl.h

名前空間: concurrency

参照

関連項目

concurrency 名前空間