STL中堆和优先队列的使用方法

一、heap
#include<algorithm>
make_heap (首位置, 尾位置+1, 可选的cmp函数); 
-> 构造堆,将数组堆化
push_heap (首位置, 尾位置+1, 可选的cmp函数);  
-> 添加元素到底层容器末尾,并将堆的作用范围扩展到这个元素,最后调整堆序 
pop_heap (首位置, 尾位置+1, 可选的cmp函数);   
-> 将堆顶元素与堆尾元素交换,并将堆的作用范围向小的方向缩小一个,最后调整堆序 
sort_heap (首位置, 尾位置+1, 可选的cmp函数);  
-> 整个堆进行排序
push_heap(heap.begin(),heap.end(),less<int>());
push_heap(heap.begin(),heap.end());
按大顶堆调整堆序
push_heap(heap.begin(),heap.end(),greater<int>());
按小顶堆调整堆序

二、priority_queue
#include<queue>

q.empty()             如果队列为空,则返回true,否则返回false

q.size()                返回队列中元素的个数

q.pop()             删除队首元素,但不返回其值

q.top()            返回具有最高优先级的元素值,但不删除该元素

q.push(item)            在基于优先级的适当位置插入新元素

priority_queue<int> que;
采用默认优先级构造队列
priority_queue<int,vector<int>,cmp> que;
按自定义优先级构造队列
priority_queue<int,vector<int>,greater<int> > que;
最小值优先
priority_queue< int ,vector< int >,less< int > > que;
最大值优先

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值