命名空间
变体
操作

std::experimental::ranges::sort

来自 cppreference.cn
< cpp‎ | experimental‎ | ranges
 
 
实验性的
技术规范
文件系统库 (filesystem TS)
库基础 (library fundamentals TS)
库基础 2 (library fundamentals TS v2)
库基础 3 (library fundamentals TS v3)
并行扩展 (parallelism TS)
并行扩展 2 (parallelism TS v2)
并发扩展 (concurrency TS)
并发扩展 2 (concurrency TS v2)
概念 (concepts TS)
范围 (ranges TS)
反射 (reflection TS)
数学特殊函数 (special functions TR)
实验性非 TS
模式匹配
线性代数
std::execution
契约
2D 图形
 
 
 
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) (ranges 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) (ranges 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 等于范围中元素的数量。

[编辑] 示例

[编辑] 参见

将范围排序为升序
(函数模板) [编辑]