C++ STL 优先队列priority_queue简述

本文主要简单介绍优先队列的原理和用法,便于快速学习和查阅。

原理

优先队列和队列一样,只能从队尾插入元素,从队首删除元素。
优先队列中最大元素始终位于队首,所以,出队时并非按照先进先出的原则,而是将当前队列中最大的元素出队。
可以重载"<"操作,重新定义比较规则。

实现
  • 头文件
    优先队列头文件与队列头文件一样,使用优先队列时别忘了加上queue 的头文件。
#include<queue>
  • 定义
priority_queue<Data_Type> name;

Data_Type 为优先队列要存储的数据的类型,name 为该队列的名字。
例如:

priority_queue<int> pq;  // 命名为pq的有限队列存储整型数据
  • 插入元素
    运用push() 成员函数将元素入队。
    例如:
pq.push(1);
pq.push(2);
  • 读取元素数量
    size() 成员函数返回当前优先队列中元素的数量。
pq.size();
  • 判断队列是否为空
    运用empty() 成员函数判断队列是否为空。若为空,返回逻辑真,否则返回逻辑假。
pq.empty();
  • 读取队首元素
    运用成员函数top() 返回队首元素。
pq.top();

注意:只能返回元素的值,而不能删除队首元素。

  • 删除元素
    运用成员函数pop() 将队首元素出队。
pq.pop();

注意:只能删除队首元素,而不能返回队首元素的值。

以上操作其实和队列操作类似,至于"<"的重载,本文暂时不做讲解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值