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
隨機存取迭代器,定址要排序之範圍中越過最後一個項目的位置。_Func
使用者定義的述詞函式物件用來定義符合在定序的連續項目的內容比較準則。 符合時,二進位述詞會採用兩個引數並傳回 true ,不符合時則傳回 false。 這個比較子函式必須強制嚴格弱式順序將序列中的項目。_Chunk_size
要分割成兩個並行執行大量的 mimimum 大小。
備註
第一個多載使用二進位碼比較工具 (比較運算子) std::less。
第二個多載的用途應有簽章 bool _Func(T, T) T 之元素的型別在輸入範圍上所提供的二進位比較子 (比較運算子)。
演算法除以輸入範圍成兩個大量平行和循序除以每個區塊成執行兩個子區塊。 選擇性 _Chunk_size 引數可用來指示演算法它持續應該大小 < _Chunk_size 控制代碼區塊。
需求
標頭: ppl.h
**命名空間:**concurrency