STL中堆和优先队列的使用方法
来源:互联网 发布:linux连接wifi 编辑:程序博客网 时间:2024/05/21 16:54
一、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;
最大值优先
推荐博文:
二叉树相关练习题(C++)
经典排序算法的C++实现
与字符串有关的一些典型问题的C++解法
一些可以用动态规划(DP)算法解决的问题(C++)
排列组合相关笔试面试题(C++)
与概率相关的算法题C++解法(附证明过程)
二分查找的巧妙运用(C++)
位运算在算法题中的使用(C++)
链表相关练习题(C++)
用实例讲解栈和队列(C++)
一些智力题的C++解法
1 0
- STL中堆和优先队列的使用方法
- STL 中堆、优先队列的使用
- stl中优先队列的使用方法
- STL 中优先队列的使用方法(priority_queu)
- STL 中优先队列的使用方法(priority_queu)
- STL中优先队列的使用方法
- STL 中优先队列的使用方法(priority_queu)
- STL 中优先队列的使用方法(priority_queu)
- STL 中优先队列的使用方法(priority_queue)
- STL 中优先队列的使用方法(priority_queu)
- STL优先队列的使用方法
- STL 中优先队列,队列以及statck的使用方法(priority_queu)
- STL中栈和队列的使用方法
- STL中栈和队列的使用方法
- STL 中栈和队列的使用方法
- 【优先队列】STL之优先队列的使用方法
- STL中的优先队列priority_queue的使用方法
- STL中栈、队列和优先队列的使用
- QWidget、QMainWindow、QDialog和QFrame的区别
- DAY5:leetcode #8 String to Integer (atoi)
- riverbed mib
- 关于linux下wireshark启动时Lua报错
- 《疯狂Java讲义(第3版)》.(李刚)——Java运行机制及JVM
- STL中堆和优先队列的使用方法
- Scala(一)
- lucene学习之查询
- 安卓HelloWorld解析
- SlidingMenu 源码解析
- 关于OpenCV的那些事——利用RANSAC消除错误姿态
- java使用jxl与poi操作excel文件
- IDEA快捷键
- Swift 正则表达式 验证手机号、邮箱、URL等