首页 > 其他 > 详细

priority_queue详解

时间:2020-03-21 18:36:44      阅读:62      评论:0      收藏:0      [点我收藏+]

简述

  优先队列是stl里容器的一种,优先队列的底层结构是堆,会根据定义的优先级将优先级高的排在队首,入队和出队的时间复杂度在log(n)。

定义

  优先队列默认大的在队首,字符串则为字典序由大到小。int,double,char,string类型都可以这样定义。

priority_queue<int> qe;//默认大的在前面
priority_queue<string,vector<string>,greater<string> >qe;//小的在前面 

  若队内元素是自己定义的结构体,则需要重载运算符改变优先级。

struct node{
    int x,y;
    node(int a,int b){x=a;y=b;}
};
bool operator<(node a,node b){
    return a.x>b.x;//注意这里的符号是反过来的,现在是从小到大 
}
priority_queue<node> qe; 

成员函数

容量

•qe.empty();  队列判空

•qe.size();     队列元素个数

返回信息

•qe.top();     队头元素(在优先队列没有front和back函数)

操作

•qe.push(x);   将x入队

•qe.pop();    队首元素出队

 

priority_queue详解

原文:https://www.cnblogs.com/qq2210446939/p/12540428.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!