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