parallel_sort 函数

在一个指定大小的元素到一个 nondescending 的顺序,或基于二进制谓词指定的一个排序的条件,并行。 此函数语义相似 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
    二进制比较 functor 的类型。

  • _Begin
    解决一个随机访问迭代器第一个元素的位置在进行排序的大小。

  • _End
    解决一个随机访问迭代器通过最终元素的位置一在进行排序的大小。

  • _Func
    定义连续的元素将足够的比较条件顺序的用户定义的谓词函数对象。 二进制谓词采用两个参数并返回 true ,在满足和 false ,在未满足。 此比较函数必须实施强弱顺序对序列的元素。

  • _Chunk_size
    将拆分为两个并行执行的区块的 mimimum 范围。

备注

第一个重载使用这个这个二进制比较 std::less

第二个重载使用应具有签名 bool _Func(T, T)T 是元素的类型在输入范围的所提供的二进制比较。

算法将输入范围划分为两个区块和并行连续将每个区块为执行的两个子区块。 可选参数 _Chunk_size 可用于指示到算法它按顺序应范围 < _Chunk_size 处理块。

要求

**标头:**ppl.h

命名空间: 并发

请参见

参考

concurrency 命名空间