基础用法
头文件:#include<queue>
默认创建大根堆:
priority_queue<int> q;//储存int型数据
priority_queue<double> q;//储存double型数据
priority_queue<string> q;//储存string型数据
priority_queue<结构体名> q;//储存结构体或者类
常用方法:
empty() 如果优先队列为空,则返回真
pop() 删除第一个元素
push() 加入一个元素
size() 返回优先队列中拥有的元素的个数
top() 返回优先队列中有最高优先级的元素
创建小根堆:
priority_queue<int,vector<int>,greater<int>> q;//储存int型数据
priority_queue<double,vector<double>,greater<double>> q;//储存double型数据
priority_queue<string,vector<string>,greater<string>> q;//储存string型数据
priority_queue<自定义结构体名,vector<自定义结构体名>,Compare> q;//储存结构体或者类
//重载比较方法
struct Compare {
bool operator()(const vector<int>& a, const vector<int>& b) {
return a[1] < b[1]; // < 是大根堆 > 是小根堆
}