priority_queue

 

•知识支持

  熟悉堆排序的小伙伴们都知道,使数组按照升序排列,需要创建大根堆,反之,需要创建小根堆;

  而优先级队列就是通过堆来实现排序的;

  也就是说,建立一个升序排列的优先级队列,需要创建一个大根堆;

•定义

1 greater<int >:创建大根堆,使队列升序排列
2 priority_queue<int ,vector<int >,greater<int > >q;
1 less<int >:创建小根堆,使队列降序排列
2 priority_queue<int ,vector<int >,less<int > >q;
 1 struct Heap
 2 {
 3     int x;
 4     bool operator < (const Heap &obj)const
 5     {
 6         /**
 7             创建Heap数组,则按照x降序排列
 8             如果放到优先级队列中,则是按照x升序排列
 9             相当于根据x创建了一个大根堆
10         */
11         return x > obj.x;
12     }
13 };
14 priority_queue<Heap >q;///按照x升序排列

•常用操作

  $q.push()$ , $q.pop()$ , $q.top()$ , $q.empty()$ , $q.size()$

转载于:https://www.cnblogs.com/violet-acmer/articles/11429879.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值