std::sort
1. parameter
배열의 시작 위치, 끝 위치
2. 정렬 기준
[default] 오름차순
[custom] sort 함수의 3rd 인자로 다양한 비교함수 cmp를 넣어주면, 그 함수 기준으로 정렬 가능
※ 내림차순 : sort ( , , greater<>())
※ cmp (int a, int b)
① a가 b의 앞에 와야 할 경우 true를 리턴하게끔 설계
bool cmp(int a, int b) {
if(a > b) return true; // a >= b 하면 안됨
return false;
}
② a와 b의 우선순위가 같으면 false 반환해야 함 ( false를 리턴하는 경우, swap 한다는 사실을 숙지하고 있자! )
③ cmp의 인자로 STL이나 클래스 객체가 전달되는 경우, 굳이 인자값을 복사해서 보낼 필요 없으므로 reference 이용
bool cmp(string a, string b) {
return a < b; // 사전순으로 정렬 (권장 X)
}
bool cmp(const string& a, const string& b) {
return a < b; // 사전순으로 정렬 (권장)
}
'Coding Test > C++ 줍줍' 카테고리의 다른 글
[C++ 줍줍] 올림, 내림, 반올림 (0) | 2022.09.05 |
---|---|
[C++ 줍줍] 문자열 자르기 : substr( ) (0) | 2022.09.05 |
[C++ 줍줍] 벡터를 이용한 집합 계산 : 합집합, 교집합, 차집합 (0) | 2022.07.25 |
[C++ 줍줍] string의 특정 값 제거하기 : index, 문자 기준 (0) | 2022.07.05 |
[C++ 줍줍] Map의 value에 여러 개의 값을 저장하기 (0) | 2022.07.05 |