-
[Priority queue] 간단한 참고개발/C·C++ 2021. 7. 3. 21:34
cppreference를 보면 내부적으로 디폴트로 vector을 이용해 데이터를 저장하며 정렬 방식은 오름차순인 것을 알 수 있습니다. less가 왜 오름차순인 이유는 왼쪽 항을 기준으로 a < b이기 때문에 결과적으로 오름차순이 됩니다. 우선순위 큐는 데이터의 최대값, 최소값을 찾고 싶을 때 유용합니다. 상수 시간으로 찾을 수 있습니다.
그렇다면 다음의 결과가 어떻게 될까요?
priority_queue<int> pq; pq.emplace(3); pq.emplace(5); pq.emplace(2); pq.emplace(4); pq.emplace(1); while (!pq.empty()) { cout << pq.top() << endl; pq.pop(); }
오름차순에서 top이 가장 큰 값이 나온다는 것은 최초의 top이 배열의 마지막 인덱스라는 의미가 됩니다.
'개발 > C·C++' 카테고리의 다른 글
Default arguments (0) 2021.07.05 [Template] 템플릿 구체화 (0) 2021.07.05 Guaranteed Copy Elison (0) 2021.06.27 InterlockedExchange, InterlockedCompareExchange (0) 2021.06.10 timeBeginPeriod function (0) 2021.06.10