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
投影函式的類型。_Begin
隨機存取迭代器,定址要排序之範圍中第一個項目的位置。_End
隨機存取迭代器,定址要排序之範圍中越過最後一個項目的位置。_Alloc
STL 相容的記憶體配置器的執行個體。_Proj_func
轉換項目成為一個整數值執行使用者定義的投影函式物件。_Chunk_size
要分割成兩個並行執行大量的 mimimum 大小。
備註
所有多載需要 n * sizeof(T) 額外的空間, n 是要排序之項目的數目,而 T 是項目型別。 當建立項目需要使用此簽章簽署之I _Proj_func(T) 的一個項目的投影函式會傳回索引鍵, T 是項目型別,而且 I 是不帶正負號的整數類資料型別。
如果您不提供一個投影函式,傳回這個項目的預設投影函式為整數型別使用。 如果項目不是整數類資料型別在沒有投影函式時,函式無法編譯。
如果您不提供配置器型別或執行個體, STL 記憶體配置器會使用 std::allocator<T> 配置的緩衝區。
演算法除以輸入範圍成兩個大量平行和循序除以每個區塊成執行兩個子區塊。 選擇性 _Chunk_size 引數可用來指示演算法它持續應該大小 < _Chunk_size 控制代碼區塊。
需求
標頭: ppl.h
**命名空間:**concurrency