코딩/C++
[C++] priority_queue STL 비교 구조체 comparator 사용하기
kimyunseok
2021. 9. 1. 00:02
algorithm STL에 있는 sort() 메서드를 사용할 때에는, 그냥 bool형 비교 메서드 하나만 만들어주면 됐었다.
queue STL에 있는 priority_queue를 사용할 때에는
less<>()를 써서 내름차순으로 만들거나
greater<>()를 써서 오림차순으로 만들 수 있다.
그러나 class 형식으로 만들어서 쓰고싶을 때에는
구조체를 만들어서 그 안에 bool형 operator()(A, B)의 형태의 메서드를 만들어 주어야 한다.
bool 메서드는 return true일 때 앞 뒤를 바꾼다고 생각하면 된다.
따라서 위처럼 만들 경우 p1의 시간, type에 따라 오름차순으로 정렬된다고 생각하면 된다.
pq 선언은 다음처럼 해주면 된다.