Namespaces
Variants

std::experimental::ranges:: sort

From cppreference.net
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은 범위 내 요소의 수와 같습니다.

예제

참고 항목

범위를 오름차순으로 정렬
(함수 템플릿)