基数のソート アルゴリズムを使用して、降順に指定された範囲の要素を配置します。これは、符号なしの整数のようなキーにプロジェクト要素並べ替えることができる射影関数を必要とする安定した並べ替え関数です。既定の初期化に使用される要素に必要です。
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
射影関数の型。_Begin
並べ替えの対象となる範囲の先頭の要素の位置を示すランダム アクセス反復子。_End
並べ替えられたする範囲の最後の要素 1 を超える位置を示すランダム アクセス反復子。_Alloc
STL の互換性のあるメモリ アロケーターのインスタンス。_Proj_func
整数値に変換するユーザー定義の射影関数オブジェクト。_Chunk_size
並列実行の 2 に分割するチャンクの mimimum のサイズ。
解説
すべてのオーバーロードは n を並べ替えたする要素の数を T が要素の型である n * sizeof(T) の領域を追加する必要があります。定義I _Proj_func(T) で単項射影のファンクタは T が要素の型である I が符号なし整数に似た型である要素を受けたときにキーを返すために必要となり。
射影関数を指定しない場合、要素を返す既定の射影関数は整数型に対して使用されます。関数はコンパイルされません。要素が射影関数が存在しない場合、整数型ではない場合。
アロケーターの型またはインスタンスを指定するバッファーを割り当てると、 STL のメモリ アロケーター std::allocator<T> が使用されます。
アルゴリズムは 2 個のチャンクに入力範囲に分割して、実行用の 2 種類のサブ チャンクに順次各チャンクを並列に分割します。省略可能な引数 _Chunk_size でアルゴリズムに表示にできますが、連続してください。サイズの < _Chunk_size ハンドルのチャンク使用できます。
必要条件
ヘッダー: ppl.h
名前空間: の同時実行