sort, stable_sort, partial_sort는 <algorithm> 헤더파일에 정의되어 있다.
1. 사용 방법
1) sort
sort(vec.begin(), vec.end()); // 첫 인자의 이터레이터부터 끝 인자의 이터레이터까지
// 정렬을 수행. 연산자 <를 활용해서 정렬한다.
sort(vec.begin(), vec.end(), cmp()); // 비교 기준에 대한 함수 객체 전달.
sort로 정렬할 데이터의 이터레이터는 반드시 RandomAccessIterator이어야 한다. (BidirectionalIterator의 경우 사용 불가) 기본적으로 <를 활용해서 정렬하기에 오름차순 정렬이라고 할 수 있다.
내림차순으로 정렬하고 싶으면 greater<type>이라는 미리 정의된 함수 객체를 비교 기준으로 전달하면 된다.
std::sort(vec.begin(), vec.end(), greater<int>());
2) partial_sort
해당 함수는 부분적인 정렬을 수행한다.
std::partial_sort(vec.begin(), vec.begin() + 3, vec.end());
위와 같이 사용하면 vec.begin()부터 vec.begin() + 3까지만 정렬을 수행하고, 그 이후 vec.end()까지는 정렬되지 않은 값이 오게 된다.
3) stable_sort
stable_sort의 경우 sort와는 다르게 정렬을 수행했을 때 삽입된 순서를 지켜서 정렬해준다.
std::stable_sort(vec.begin(), vec.end());
'프로그래밍 언어 > C++' 카테고리의 다른 글
STL 알고리즘 / transform 함수 (0) | 2023.02.14 |
---|---|
STL 알고리즘 - 원소 제거(remove, remove_if) (0) | 2023.02.14 |
STL 컨테이너 - set, multiset, map, multimap (0) | 2023.02.14 |
STL 컨테이너 - Deque (0) | 2023.02.14 |
STL 컨테이너 - List (0) | 2023.02.14 |
댓글