优先队列:优先队列资料介绍
队列:先进先出
优先队列:自动排序,不是先进先出,他们有差不多的方法,但是内部存储顺序完全不同
1.头文件
#include<queue>
2.常用函数:
1.push()入队
2.pop()队首元素出队
3.top()获取队首元素
4.back()获取队尾元素
5.empty()是否为空
6.size()队列的大小
3.排序方式:
1.默认为从大到小排序,优先级高的位于队首
priority_queue<int>p;
2.内部排序
struct fruit{
string name;
int price;
friend bool operator < (fruit f1,fruit f2){
return f1.price<f2.price;
}
};//价格高的优先级高,价格高的位于队首,如果你想倒过来就直接把return f1.price<f2.price换成>
priority_queue<fruit>p;
3.定义排序
前言:
priority_queue <int,vector<int>,less<int> > p;//这里等于priority_queue <int> p,这里是从大到小排序
priority_queue <int,vector<int>,greater<int> > q;//这里是从小到大排序
自己写排序函数
struct fruit{
string name;
int price;
};
struct cmp{
bool operator () (fruit f1,fruit f2){
return f1.price>f2.price
}
}//价格从小到大,注意这里是重点
priority_queue<fruit,vector<fruit>,cmp>q;