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
    并行执行将拆分成的两个区块的最小值。

备注

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

第二个用途应重载具有签名 bool _Func(T, T)T 元素类型。输入值域中提供的二进制比较。

算法将输入值域分为两种块并成功地将每个块分成两个能并行执行的子块。 可选参数 _Chunk_size 可用来指示为算法应按顺序应处理块的大小 < _Chunk_size。

要求

**标头:**ppl.h

**命名空间:**并发

请参见

参考

concurrency 命名空间