优先队列

优先队列:优先队列资料介绍
队列:先进先出
优先队列:自动排序,不是先进先出,他们有差不多的方法,但是内部存储顺序完全不同
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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值