C++优先队列(priority
目录
(图片来源网络,侵删)
一、 定义
二、优先队列内元素访问
三、优先队列常用函数
四、优先队列内元素的优先级
优先队列(priority_queue),底层的数据结构为堆(heap),以此保证队首元素一定是当前队列所有元素中优先级最高的。我们也可以随时往优先队里面加入(push)元素,其队首元素依然为优先级最高的。
一、 定义
头文件:#include
(图片来源网络,侵删)
定义的写法与其他STL容器相同,Type可以是任意的基本数据类型或是容器,Container是容器类型(这里必须是用数组实现的容器,例如vector,deque,但是不能使用list,STL里默认是vector),Functional是比较方式(升序队列:大顶堆;降序队列:小顶堆):
priority_queue name;
二、优先队列内元素访问
普通队列是先进先出的数据结构,元素在队尾添加,在队头删除。
在优先队列中,当访问元素时,元素被赋以优先级,优先级高的元素先删除,先出队。
优先队列与普通队列的不同在于我们可以定义队列内元素的优先级,通过优先级控制出队顺序。优先队列没有front()函数和back()函数,只能通过top()函数来访问队首元素(即堆顶元素):
#include #include using namespace std; int main() { priority_queue pot; pot.push(2); pot.push(6); pot.push(3); cout
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。
还没有评论,来说两句吧...