优先队列使用方法

前几天做哈夫曼的贪心,想自己模拟搞就是写不对

于是弄了个优先队列水过

干脆总结下


头文件:#include<queue>


一:使用的函数

 成员函数:

empty

true if the priority queue has no elements

pop

removes the top element of a priority queue

push

adds an element to the end of the priority queue

size

returns the number of items in the priority queue

top

returns the top element of the priority queue

常用的也是这么几个

使用方法:

判断是否为空:


if (q.empty()) ...
 


弹出元素:


q.pop();


插入元素:

q.push(x);
 

其中x必须是q所申明的优先队列的元素类型


清除原队列(尤其是多组数据的时候记得注意):


while(!q.empty()) q.pop();



二:从大到小排序


priority_queue<int> q;


其中<int>是变量的类型,可以任意类型。

q是queue队列名称


三:从小到大排序


priority_queue<int,vector<int>,greater<int> > q;




四:自定义排序

多级变量排序的时候需要自定义结构体变量

struct node{

      int x,y;

      friend bool operator < (node n1,node n2){

           if (n1.x!=n2.x) return n1.x<n1.x;

           return n1.y<n2.y;

    }

}

priority_queue<node> q;




从上面的小于号的重载可以看得出来,node中是以x为第一级排序,以y为第二级排序。升序还是降序呢?

大家自己去做试验吧!

全部评论

相关推荐

01-12 14:08
门头沟学院 Java
有寒假来武汉小米总部实习的大学生嘛,我也是小米的员工,想找合租舍友,仅限女生可免租半月,二月初可入住,也就是说房租是2.15开始算的哦~也可以将行李提前放过来~房屋介绍:1、房子情况:有电梯;租的是三室一厅一卫一厨,&nbsp;但是有个卧室比较小,不打算找人,只住两个人就可以了;衣柜也很大,可以放下很多衣服;房屋采光真的很好,早上起来可以在床上晒太阳的那种,十分惬意(夏季晚上十分好看!)2.&nbsp;楼下离我们很近的地方有小吃街和一个两层大超市(大概步行两分钟多就可以走到)&nbsp;,还有一个新开的麦当劳,晚上可以去吃小吃,购买物资也可以去大超市;3.&nbsp;房子基本设施齐备(洗衣机,冰箱,空调,油烟机,热水器);4.&nbsp;我有稳定的工作,生活中很注意卫生,周末有时间会自己做饭,可以投喂哦~5.&nbsp;出行:距离公交站步行10分钟不到,距政务中心,武汉小米总部三站(晚上我都是走回来的,很近的~);一个比较进的地铁,距离大概1km左右;出入我觉得很方便;6.&nbsp;房租:1150每月,押一付二,无物业费,也没有中介费和其他额外费用。7.&nbsp;民用水电燃气,用多少交多少,水电费正常平摊。希望你是:1.&nbsp;女生(本人女),不带异性回家,如有同性朋友来玩,最多过夜一晚;2.&nbsp;爱干净,讲卫生,作息正常,不吵闹,有稳定工作;3.&nbsp;好沟通,有任何问题一定要沟通,不要闷着!中介勿扰,非诚勿扰!!!希望不要浪费彼此的时间诚心有意向的可以联系我看房
租房找室友
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务