我一直想知道为什么STL优先级队列默认使用最大堆而不是最小堆。想到的两个明显的用例是寻路(Dijkstra)和构建霍夫曼代码。两种算法都需要先提取最小元素。由于排序(std :: sort)默认情况下使用升序,因此我想知道priority_queue背后的设计原因是什么,因为默认情况下我非常喜欢最小堆。
c++ stl priority-queue
c++ ×1
priority-queue ×1
stl ×1