C++——优先级队列(priority_queue)

其为队列需要包含头文件#include,其与queue的不同之处在于,可以自定义数据的优先级,让优先级高的排在队列的前面,优先出队;
优先队列具有队列的所有特性,包括基本操作,只是在此基础上添加内部排序,实质上由堆实现

  • top访问队头元素
  • empty队列是否为空
  • size返回队列中元素的个数
  • push插入元素到队尾(并排序)
  • emplace原地构造一个元素并插入队列
  • pop弹出队头元素
  • swap交换内容

用法priority_queue<Type, Container, Functional>
Type:数据类型
Container: 容器类型,必须是用数组实现的容器比如:vector,deque等等,STL里面默认的是vector
Functional:比较方式(仿函数)
当需要用自定义的数据类型时才需要传入这三个参数,使用基本类型时,只需要传入数据类型,默认是大顶堆;

//升序队列
priority_queue <int,vector<int>,greater<int> > q;
//降序队列
priority_queue <int,vector<int>,less<int> >q;

//greater和less是std实现的两个仿函数(就是使一个类的使用看上去像一个函数。其实现就是类中实现一个operator(),这个类就有了类似函数的行为,就是一个仿函数类了)
posted @   香花草的味道  阅读(194)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示