次の方法で共有


parallel_radixsort 関数

基数並べ替えアルゴリズムを使用して、指定された範囲の要素を降順以外の順序で配置します。 これは安定した並べ替え関数で、符号なし整数 (キーなど) に分類されるように要素を投影する投射関数を必要とします。 並べ替えられる要素には既定の初期化が必要です。

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

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

template<
   typename _Allocator,
   typename _Random_iterator
>
inline void parallel_radixsort(
   const _Allocator& _Alloc,
   const _Random_iterator &_Begin,
   const _Random_iterator &_End
);

template<
   typename _Random_iterator,
   typename _Function
>
inline void parallel_radixsort(
   const _Random_iterator &_Begin,
   const _Random_iterator &_End,
   const _Function &_Proj_func,
   const size_t _Chunk_size = 256 * 256
);

template<
   typename _Allocator,
   typename _Random_iterator,
   typename _Function
>
inline void parallel_radixsort(
   const _Random_iterator &_Begin,
   const _Random_iterator &_End,
   const _Function &_Proj_func,
   const size_t _Chunk_size = 256 * 256
);

template<
   typename _Allocator,
   typename _Random_iterator,
   typename _Function
>
inline void parallel_radixsort(
   const _Allocator& _Alloc,
   const _Random_iterator &_Begin,
   const _Random_iterator &_End,
   const _Function &_Proj_func,
   const size_t _Chunk_size = 256 * 256
);

パラメーター

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

  • _Allocator
    STL の互換性のあるメモリ アロケーターの型。

  • _Function
    projection 関数の型。

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

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

  • _Alloc
    STL の互換性のあるメモリ アロケーターのインスタンス。

  • _Proj_func
    ユーザー定義の projection 関数オブジェクト。整数値への変換要素。

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

解説

すべてのオーバーロードは n が並べ替えられるされる要素の数である T は要素の型である n * sizeof(T) の領域を必要とします。 シグネチャI _Proj_func(T) で単項投影ファンクタは T は要素の型である I が符号なしな形式の整数型である要素を受けたときにキーを返すために必要な。

projection 関数を指定しない場合、要素を返す既定の projection 関数は整数型で使用されます。 関数はコンパイルしません要素に projection 関数がない場合、整数型である。

アロケーターの型またはインスタンスを指定するバッファーを割り当てるには、STL のメモリ アロケーター std::allocator<T> が使用されます。

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

必要条件

ヘッダー: ppl.h

名前空間: concurrency

参照

関連項目

concurrency 名前空間