priority_queue
本质是堆
头文件
#include<queue>
using namespace std;
定义
priority_queue<int> q; //默认大根堆
priority_queue<int,vector<int>,greater<int>> q; //小根堆
priority_queue<int,vector<int>,less<int>> q; //大根堆
priority_queue <st1> q; //结构体定义
常用函数
q.top() //返回堆顶元素值
q.empty() //堆为空则返回true,否则返回false
q.size() //返回元素个数
q.push() //插入元素
q.pop() //弹出堆顶元素
结构体定义类型
需要重载小于号,且要反向重载。
以下为实现以x为第一关键字,y为第二关键字的小根堆的实现。
struct st1{
int x;
int y;
};
bool operator < (st1 a,st1 b)
{
if(a.x==b.x)return a.y>b.y;
return a.x>b.x;
}
priority_queue <st1> q;
功能有限,如需更多功能请移步set。

浙公网安备 33010602011771号