优先队列 //数据结构堆的实现
#include<queue>
priority_queue<int> q;
支持push,pop(),top(),emtpy(),size();
默认优先级设置是int,double,都是数字大的优先级高,char是字典序大小排序
(1)基本数据类型的优先级
priority_queue<int, vector<int>, less<int>> q;
//int 是类型, vector<int> 是承载底层数据结构堆(heap) ,less<int> 表示数字大的优先级越大,而greater<int>表示数字小的优先级越大
(2)结构体数据类型的优先级设置
struct fruit{
string name;
int price;
friend bool operator <(fruit f1,fruit f2)
{ return f1.price < f2.price;//以价格的优先级高
return f1.price > f2.price;//以价格的优先级低为输出
}
}
常见用途解决一些贪心问题,和Djikstra算法进行堆优化