C++ vector 오름차순, 내림차순으로 정렬하기
sort() 함수
- 사용하기 위해서는 #include <algorithm> 을 해주어야 한다.
- 디폴트(기본)적으로 오름차순으로 정렬을 해준다.
- 내림차순으로 정렬을 하고자 하거나 특정 조건에 따라서 정렬을 하고자 할 때는 비교함수를 만들어서 인수로 주어야 한다.
( 비교함수명은 본인이 지정하면 된다. )
- 비교함수는 리턴형은 bool 형으로 매개변수들의 타입은 정렬하는 vector의 저장하는 값의 타입을 준다.
- sort() 함수는 퀵 솔트(Quick sort)으로 구현되어 있어 빠른 속도로 정렬을 한다.
- sort() 함수를 사용한다면 일반적인 배열또한 정렬할 수 있다.
[ 코 드 ]
- 23라인 : 추가적으로 비교함수를 인수를 주지 않았다. 그러므로 디폴트 값인 오름차순으로 정렬이 된다.
※
- 28라인 : reverse 함수는 뜻 그대로 반대로 뒤집는다. 그래서 이를 오름차순으로 정렬한 후 사용한다면 내림차순으로 정렬한 것과 같은 결과를 얻을 수 있다.
( reverse 함수또한 사용하기 위해서는 #incldue <algorithm> 을 해주어야 한다.
- 29라인 : 오름차순 정렬할 때는 인수로 v.begin(), v.end()를 주었었다. 하지만 이대신 v.rbegin(), v.rend()를 주면 내림차순으로 정렬이 된다. ( r은 아마 reverse )
- 30라인 : 추가적으로 비교함수를 인수로 주었다. 비교 함수에서 준 조건에 따라 내림차순으로 정렬이 된다. 이 방법은 굳이 내림차순 정렬만이 아니라 특정 조건에 따라서 정렬을 하고자 할 때 사용할 수 있다.
[ 결 과 ]
결과를 보면 각각 오름차순과 내림차순으로 각각 잘 정렬된 것을 확인할 수 있다.
'C++ > STL' 카테고리의 다른 글
[STL] C++ priority_queue 우선순위 큐 (0) | 2020.04.07 |
---|---|
[STL] C++ queue 생성 및 삽입, 삭제 (0) | 2020.04.07 |
[STL] C++ stack 생성 및 삽입, 삭제 (0) | 2020.03.31 |
C++ pair 사용하여 쌍으로 값저장 (0) | 2020.03.31 |
C++ vector 생성 및 삽입, 삭제 (0) | 2020.03.28 |