命名空间
变体
操作

std::experimental::ranges::sort

来自 cppreference.com
< cpp‎ | experimental‎ | ranges
 
 
实验性
技术规范
文件系统库 (文件系统 TS)
库基础 (库基础 TS)
库基础 2 (库基础 TS v2)
库基础 3 (库基础 TS v3)
并行扩展 (并行 TS)
并行扩展 2 (并行 TS v2)
并发扩展 (并发 TS)
并发扩展 2 (并发 TS v2)
概念 (概念 TS)
范围 (范围 TS)
反射 (反射 TS)
数学特殊函数 (特殊函数 TR)
实验性非 TS
模式匹配
线性代数
std::execution
契约
2D 图形
 
 
 
定义在头文件 <experimental/ranges/algorithm>
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) 按升序对范围 [firstlast) 中的元素进行排序。相等元素的顺序不受保证。在应用投影 proj 之后,使用 comp 对元素进行比较。
2) 对范围 r 中的元素进行排序,就像使用 return ranges::sort(ranges::begin(r), ranges::end(r), comp, proj); 一样。

尽管上述声明表明,但实际算法声明的模板参数数量和顺序是未指定的。因此,如果在调用算法时使用显式模板参数,程序可能不可移植。

内容

[编辑] 参数

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

[编辑] 返回值

一个指向范围末尾的迭代器(即,对于重载 (1),它与 last 相等,对于重载 (2),它与 ranges::end(r) 相等)。

[编辑] 复杂度

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

[编辑] 示例

[编辑] 参见

按升序对范围进行排序
(函数模板) [编辑]