priority_queue的底层数据机构
时间: 2023-11-09 14:06:36 浏览: 82
C++ 中”priority_queue” 优先级队列实例详解
C++中的priority_queue是一个优先队列容器,它是一个基于堆的数据结构。堆是一种特殊的树形数据结构,它满足堆的性质:对于每个节点x,它的父节点的值都比x的值大(或小,具体取决于是最大堆还是最小堆)。在priority_queue中,堆被实现为一个vector容器,其中第一个元素是堆的根节点,后续元素按照从左到右、从上到下的顺序排列。priority_queue默认是最大堆,也可以通过指定比较函数来实现最小堆。当我们向priority_queue中插入元素时,它会自动调整堆的结构,以保证堆的性质不被破坏。当我们从priority_queue中取出元素时,它会返回堆顶元素,同时将堆顶元素删除,并重新调整堆的结构。
阅读全文