头文件:#include <queue>
声明格式:priority_queue <>
基本操作:
常用操作:
empty(判断是否为空)
pop(出队)
push(入队)
size(求大小)
pop(访问元素但不出队)
排序:(主要内容)
第一种用法(默认从大到小排序):
priority_queue<int> q1;//默认从大到小排序,整数中元素大的优先级高
第二种用法(从小到大排序):
priority_queue<int,vector<int>,greater<int> >q2;
第一个参数为数据类型
第二个参数为容器类型;
第三个参数为比较函数。
第三种用法:自定义排序规则 //和普通排序正好相反
struct node
{
int a, b;
};
bool operator<(const node &x, const node &y) //如果b值相等,按a值从小到大排序,否则按b值从大到小排序
{
if (x.b == y.b)
return x.a > y.a;
else
return x.b < y.b;
}