算法笔记-6.6 priority_queque用法

#include<stdio.h>
#include<queue>
using namespace std;
int main(){
	priority_queue<int> q;
	q.push(3);
	q.push(4);
	q.push(1);
	printf("%d",q.top());
	return 0;
}

/*
------priority_queque相当于优先级的队列 可以输出优先级高的元素-----
1.priority_queque中没有font()函数和back()函数访问元素
    只有通过q.top()访问队首函数
2.q.push(x)----------->将元素x入队
3.q.pop()------------->对首元素出队
4.q.empty()----------->检测是否为空 空返回false 不空返回true
5.q.size()------------>元素个数
6.priority_queque内元素的优先级设置
    1)基本数据类型(int、double、char)
        方法一:priority_queque<int>q   默认数字或者字典序越大,越靠前
        方法二:priority_queque<int,vector<int>,greater<int>>q;
            第一个参数 根据不同的数据类型去定义
            第二个参数 承接底层的数据堆,不同数据类型用vector<double>或vector<char>
            第三个参数 是对第一个参数的比较类 
                        less<int>表示数字大的优先级大
                        grrater<int>表示数字小的优先级大
    2)结构体的优先级
                struct fruit(){
                    Sting name;int price;
                    friend bool operator < (fruit f1,fruit f2){ 
                        return f1.price<f2.price;//重载"<"号的作用 如果需要价格低的优先级高 则这行写">"号即可
                    }
                };
7.用途:解决贪心问题,注意使用top()之前先判断队列是否为empty(),否则可能因为empty而出错
*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值