名前空間
変種
操作

std::experimental::ranges::sort

From cppreference.com
< cpp‎ | experimental‎ | ranges
 
 
 
 
 
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 は範囲内の要素数に等しい。

[編集]

[編集] 関連項目

範囲を昇順にソートする
(関数テンプレート) [編集]
English 日本語 中文(简体) 中文(繁體)