C++ STL
sort 함수의 정렬기준
mintuchel
2023. 5. 14. 23:16
- 세번째 인자로 bool 함수를 전달한다
- 비교문이 true가 되면 왼쪽 놈(a)이 오른쪽 놈(b)보다 앞으로 간다.
[정렬기준 bool 함수 전달]
algorithm의 sort 함수를 쓸때 커스텀 정렬기준을 사용해야할때가 있다.
이런 경우에는 아래와 같이 세번째 인자로 정렬기준 함수를 전달한다.
bool comp(pair<string, int>& p1, pair<string, int>& p2)
{
if (p1.second == p2.second)
{
return p1.first < p2.first;
}
return p1.second > p2.second;
}
sort(v.begin(), v.end(), comp);
[return true의 의미]
비교문이 true가 되면 왼쪽 놈(a)이 오른쪽 놈(b)보다 뒤로 간다.
return p1.first < p2.first;
이것이 true 이면 p1이 p2보다 앞에 온다.
return p1.second > p2.second;
이것이 true 이면 p1이 p2보다 앞에 온다.
[정렬 기준 연습하기 좋은 문제들]
https://www.acmicpc.net/problem/1181