一、heap
#include<algorithm>
make_heap
(首位置, 尾位置+1, 可选的cmp函数);
-> 构造堆,将数组堆化
push_heap (首位置, 尾位置+1, 可选的cmp函数);
push_heap (首位置, 尾位置+1, 可选的cmp函数);
-> 添加元素到底层容器末尾,并将堆的作用范围扩展到这个元素,最后调整堆序
pop_heap (首位置, 尾位置+1, 可选的cmp函数);
pop_heap (首位置, 尾位置+1, 可选的cmp函数);
-> 将堆顶元素与堆尾元素交换,并将堆的作用范围向小的方向缩小一个,最后调整堆序
sort_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;
|
最大值优先
|
推荐博文: