C++中的priority_queue
是一個容器適配器,它提供了對底層容器(默認為std::make_heap
)的堆操作的封裝。堆是一種特殊的二叉樹數據結構,它可以用數組或向量來表示。在C++標準庫中,priority_queue
主要用于實現優先隊列,即元素可以按照優先級進行排序和訪問。
堆的主要特點是:
priority_queue
通過堆實現了以下操作:
push
:向堆中添加一個元素,并保持堆的性質。pop
:刪除堆中的最大(或最小)元素,并保持堆的性質。top
:返回堆中的最大(或最小)元素。priority_queue
與堆的關系可以總結為:priority_queue
是基于堆實現的優先隊列,它提供了方便、高效的堆操作接口。在C++標準庫中,priority_queue
使用make_heap
、push_heap
和pop_heap
等算法來實現堆操作。這些算法在<algorithm>
頭文件中定義,可以直接在任何容器上操作,包括vector
、deque
等。