std::experimental::ranges::sort

< cpp‎ | experimental‎ | ranges
 
 
技术规范
文件系统库 (文件系统 TS)
库基础 (库基础 TS)
库基础 2 (库基础 TS v2)
库基础 3 (库基础 TS v3)
并行扩展 (并行 TS)
并行扩展 2 (并行 TS v2)
并发扩展 (并发 TS)
概念 (概念 TS)
范围 (范围 TS)
数学特殊函数 (特殊函数 TR)
 
 
 
template< ranges::RandomAccessIterator I, ranges::Sentinel<I> S,

          class Comp = ranges::less<>, class Proj = ranges::identity>
  requires ranges::Sortable<I, Comp, Proj>

I sort( I first, S last, Comp comp = Comp{}, Proj proj = Proj{} );
(1) (范围 TS)
template< ranges::RandomAccessRange Rng,

          class Comp = ranges::less<>, class Proj = ranges::identity>
  requires ranges::Sortable<ranges::iterator_t<Rng>, Comp, Proj>
ranges::safe_iterator_t<Rng> sort( Rng&& rng, Comp comp = Comp{},

                                   Proj proj = Proj{} );
(2) (范围 TS)
1) 以升序排序范围 [first, last) 中的元素。不保证保持相等元素的顺序。在应用投影 proj 后用 comp 比较元素。
2) 排序范围 rng 中的元素,如同用 return ranges::sort(ranges::begin(rng), ranges::end(rng), comp, proj);

参数

first, last - 要排序的元素范围
rng - 要排序的元素范围
comp - 要使用的比较器
proj - 要应用到范围中元素的投影

返回值

指向范围尾后一位置的迭代器(即它对于重载 (1) 等于 last ,对于重载 ranges::end(rng) 等于 (2) )。

复杂度

O(N·log(N)) 次比较,其中 N 等于范围中的元素数。

示例

参阅

将范围按升序排序
(函数模板)