Coding Test/C++ 줍줍
[알튜비튜 줍줍] sort 함수 정리
seoyamin
2022. 9. 3. 15:18
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; // 사전순으로 정렬 (권장)
}