共用方式為


parallel_buffered_sort 函式

平行排列指定範圍中的項目成非遞減排列,或者是跟據二進位述詞指定的排序準則。 這個函式語意與 std::sort 類似因為它是以比較為基礎,不穩定,原地排序的,除了需要 O(n) 額外的空間,並要求預設初始化需排序項目。

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

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

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

template<
   typename _Random_iterator,
   typename _Function
>
inline void parallel_buffered_sort(
   const _Random_iterator &_Begin,
   const _Random_iterator &_End,
   const _Function &_Func,
   const size_t _Chunk_size = 2048
);

template<
   typename _Allocator,
   typename _Random_iterator,
   typename _Function
>
inline void parallel_buffered_sort(
   const _Random_iterator &_Begin,
   const _Random_iterator &_End,
   const _Function &_Func,
   const size_t _Chunk_size = 2048
);

template<
   typename _Allocator,
   typename _Random_iterator,
   typename _Function
>
inline void parallel_buffered_sort(
   const _Allocator& _Alloc,
   const _Random_iterator &_Begin,
   const _Random_iterator &_End,
   const _Function &_Func,
   const size_t _Chunk_size = 2048
);

參數

  • _Random_iterator
    輸入範圍的迭代器類型。

  • _Allocator
    STL 相容的記憶體配置器類型。

  • _Function
    二進位比較子 (比較運算子)。

  • _Begin
    隨機存取迭代器,定址要排序之範圍中第一個項目的位置。

  • _End
    隨機存取迭代器,定址要排序之範圍中越過最後一個項目的位置。

  • _Alloc
    STL 相容的記憶體配置器的執行個體。

  • _Func
    使用者定義的述詞函式物件用來定義符合在定序的連續項目的內容比較準則。 符合時,二進位述詞會採用兩個引數並傳回 true ,不符合時則傳回 false。 這個比較子函式必須強制嚴格弱式順序將序列中的項目。

  • _Chunk_size
    要分割成兩個並行執行大量的最小單位塊。

備註

所有多載需要 n * sizeof(T) 額外的空間, n 是要排序之項目的數目,而 T 是項目型別。 在大部分情況下 parallel_buffered_sort 在 parallel_sort的效能會顯示改善,因此,您應該使用它在 parallel_sort,如果有可用的記憶體。

如果您不提供二進位比較子 (比較運算子) std::less 做為預設,要求項目型別提供運算子 operator<()

如果您不提供配置器型別或執行個體, STL 記憶體配置器會使用 std::allocator<T> 配置的緩衝區。

演算法除以輸入範圍成兩個大量平行和循序除以每個區塊成執行兩個子區塊。 選擇性 _Chunk_size 引數可用來指示演算法它持續應該大小 < _Chunk_size 控制代碼區塊。

需求

標頭: ppl.h

**命名空間:**concurrency

請參閱

參考

concurrency 命名空間