优先队列

优先队列可以对队列中数据元素排序

#include<queue>//头文件 
priority_queue<int>q;//默认为从大到小进行排序 
priority_queue<int,vector<int>,less<int> >q;//从大到小排序
priority_queue<int,vector<int>,greater<int> >q;//从小到大排序 

其中vector<>不需要#include

优先队列使用方法与队列相似,常用的函数
优先队列返回队首元素

q.top();

队列为

p.front();

优先队列中元素为结构体

在结构体外重载结构体运算符

struct node{
	int start,end;
};
bool operator<(const node &a,const node &b)
{
	if(a.start<b.start||a.start==b.start&&a.end<b.end)
		return 0;
	return 1;  
}

在结构体内重载结构体运算符

struct node{  
    int start,end;  
    bool operator < (const node& t)const{  
        if(start<t.start||start==t.start&&end<t.end)
			return 0;
		return 1; 
    }  
};

默认为从小到大输出,从大到小输出返回1

参考GooZy博客