Namespaces
Variants

std::experimental::ranges:: sort

From cppreference.net
ヘッダーで定義 <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) 範囲 [ first , last ) 内の要素を昇順でソートします。等しい要素の順序は保持される保証はありません。要素は投影 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 は範囲内の要素数に等しい。

関連項目

範囲を昇順にソートする
(関数テンプレート)