Share via


parallel_radixsort 函式

將指定範圍中的項目排列為非遞減的方式使用基數,排序演算法中。 這是穩定的排序功能,而這會投影函式可以 project 會依序排列成不帶正負號的整數式索引鍵的項目。 需要正在排序之項目的預設值初始化。

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
    Iterator 的類型與輸入範圍。

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

  • _Function
    投影函式型別。

  • _Begin
    隨機存取 iterator 定址中範圍的第一個元素的位置會依序排列。

  • _End
    隨機存取 iterator 定址位置 1,超過範圍中的最後一個元素會依序排列。

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

  • _Proj_func
    將項目轉換成整數值的使用者定義投影函式物件。

  • _Chunk_size
    Mimimum 會分割成兩個平行處理執行之區塊的大小。

備註

所有多載必須有n * sizeof(T)的額外空間,其中n是要排序的項目數,並T是元素型別。 具有簽章的一元 (unary) 投影 functorI _Proj_func(T) ,才能傳回索引鍵時如果指定的項目,其中T是元素型別和I是不帶正負號的整數類似的型別。

如果您不提供投影函式,它只會傳回之項目的預設投影函式適用於整數類資料型別。 此函式,將無法編譯是否之項目的投影函式不存在的整數型別。

如果您不提供配置器類型或例項,STL 記憶體配置器**std::allocator<T>**用來配置的緩衝區。

演算法會將輸入的範圍分割成兩個區塊 (chunk),而且連續分為兩個 sub-chunks 以平行方式執行中的每個區塊。 選擇性的引數_Chunk_size可以用來向演算法它應該處理區塊 (chunk) 大小的 < _Chunk_size以序列方式。

需求

標頭: ppl.h

Namespace: 並行存取

請參閱

參考

concurrency 命名空間