来自cppreference.com
template< RandomAccessIterator I, Sentinel<I> S,
class Comp = ranges::less<>, class Proj = ranges::identity >
requires Sortable<I, Comp, Proj>
I sort( I first, S last, Comp comp = Comp{}, Proj proj = Proj{} );
|
(1) | (范围 TS) |
template< RandomAccessRange R,
class Comp = ranges::less<>, class Proj = ranges::identity >
requires Sortable<ranges::iterator_t<R>, Comp, Proj>
ranges::safe_iterator_t<R> sort( R&& r, Comp comp = Comp{}, Proj proj = Proj{} );
|
(2) | (范围 TS) |
1) 以升序排序范围
[first, last) 中的元素。不保证保持相等元素的顺序。在应用投射 proj 后用 comp 比较元素。2) 排序范围
r 中的元素,如同用 return ranges::sort(ranges::begin(r), ranges::end(r), comp, proj);。尽管声明描述如上,算法声明的模板形参的实际数量和顺序是未指定的。从而若在调用算法时使用显式模板实参,则程序很可能不可移植。
参数
| first, last | - | 要排序的元素范围 |
| rng | - | 要排序的元素范围 |
| comp | - | 要使用的比较器 |
| proj | - | 要应用到范围中元素的投射 |
返回值
指向范围尾后一位置的迭代器(即它对于重载 (1) 等于 last,对于重载 ranges::end(rng) 等于 (2))。
复杂度
O(N·log(N)) 次比较,其中 N 等于范围中的元素数。
示例
| 本节未完成 原因:暂无示例 |
参阅
| 将范围按升序排序 (函数模板) |