priority_queue 小值优先方法

priority_queue默认为大顶堆,即堆顶元素为堆中最大元素。如果我们想要用小顶堆有两种方法

1. 对于非结构体的数据类型方法(int double 等等)

需要增加使用两个参数:

priority_queue<int, vector<int>, greater<int> > q;  // 小顶堆
priority_queue<int, vector<int>, less<int> > q;     // 大顶堆
//注意 > >必须分开 否则编译器会误认

2.  一般的方法

struct cmp{
    bool operator ()(const int a, const int b)const{//a 的优先级比b小时 return true
    return a>b;
    }
};
priority_queue <int,vector<int>,cmp >pq;

3.可以在结构体内进行重定义 <运算符

struct Temp{//小的优先
    int k;
    bool operator <(const Temp a)const{//a 的优先级比b小时 return true
    return k>a.k;
    }
};

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值