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 圖形
 
 
 
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 - 要排序的元素範圍
rng - 要排序的元素範圍
comp - 要使用的比較器
proj - 要應用到範圍中元素的投射

[編輯] 返回值

指向範圍尾後一位置的迭代器(即它對於重載 (1) 等於 last,對於重載 ranges::end(rng) 等於 (2))。

[編輯] 複雜度

O(N·log(N)) 次比較,其中 N 等於範圍中的元素數。

[編輯] 示例

[編輯] 參閱

將範圍按升序排序
(函數模板) [編輯]