기본인 내림차순은 그냥 priority_queue<int> q 처럼 선언하면 되는데
왜 오름차순은 priority_queue<int, vector<int>, greater<int>> q로 중간에 vector가 들어가야 하나요?
기본인 내림차순은 그냥 priority_queue<int> q 처럼 선언하면 되는데
왜 오름차순은 priority_queue<int, vector<int>, greater<int>> q로 중간에 vector가 들어가야 하나요?
기본골격이 원래 아래건데 너가 편하게 쓰라고 그렇게 만들어준거다
그 뒤에 두개가 디폴트로 들어가있는거라 그럼. 중간에 들어가는게 컨테이너, 마지막으로 들어가는게 Comparator였나 암튼 기본값은 std::less임
그럼 comparator가 먼저였으면 벡터를 안 넣어도 됬을까? 그런 거 됨?
ㅇㅇ 근데 표준 만든 애들이 저렇게 만든덴 이유가 있지 않을까 아님말고
타입이 선언이 그러니 벡터는 필요할듯요? 근데 생성자에 따라서
https://godbolt.org/z/vW9eP8
이런 식으로 추론할수는 있음. 아마 C++20부터 될거
priority_queue, less> q 이것도 가능함.
greater대신 less도가능