名稱空間
變體
操作

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) (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 等於範圍中的元素數量。

[編輯] 示例

[編輯] 另請參閱

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