优先队列模板

优先队列是用堆实现的,所以优先队列中的push()、pop()操作的时间复杂度都是O(nlogn)。

优先队列的初始化需要三个参数,元素类型、容器类型、比较算子。

需要熟悉的优先队列操作:

  1. q.top() 访问堆顶
  2. q.push() 入堆
  3. q.pop() 出堆
  4. 不同类型元素的优先级设置
  5. 定义堆需要注意最后两个> >之间有一个空格

数据结构

priority_queue < int, vector<int>, less<int> > q; // 大顶堆——堆顶为大数
priority_queue < int, vector<int>, greater<int> > q; // 小顶堆——堆顶为小数

例-百练4078:实现堆结构

AC代码

#include<iostream>
#include<queue>
#include<vector>
#include<algorithm> using namespace std; int main()
{
priority_queue < int, vector<int>, greater<int> >q;
int m, t, x, top;
cin >> m;
while (m--)
{
cin >> t;
if (t == )
{
cin >> x;
q.push(x);
}
if (t == )
{
top = q.top();
cout << top << endl;
q.pop();
}
}
return ;
}

最新文章

  1. Netty入门学习
  2. word20161210
  3. 【学】jQuery的源码思路5——增加class的操作
  4. Home-brew 安装&amp;卸载 Git
  5. java 把URL中的中文转换成utf-8编码
  6. Nginx + PHP 缓存详解
  7. IE 8 中 parseInt 的注意点
  8. mybatis第一个入门demo
  9. jQuery中on()方法用法实例详解
  10. 使用 svn+maven+jenkins(hudson)+Publish Over SSH plugins 构建持续集成及自动远程发布体系(转)
  11. C++ STL它vector详细解释
  12. [译]Selenium Python文档:五、Waits等待
  13. poj_3258:River Hopscotch(二分)
  14. PCA算法和python实现
  15. leetCode66:加一
  16. 假设result是一个float型变量,其值为27.32,value是一个int型变量,其值为15执行以下语句后,两个便利的值分别是多少?为什么?
  17. Asp.net常用的三十多个代码(非常实用)
  18. Ubuntu Server 与 Ubuntu Desktop之间的区别
  19. myeclipse安装maven
  20. OSI与TCP/IP模型

热门文章

  1. sql中别名加as和不加as的区别
  2. Delphi - 采用第三方控件TMS、SPComm开发串口调试助手
  3. Linux进程管理(11)
  4. 内部类不能有静态变量(除静态的对Static的理解)
  5. ANT 的使用
  6. 4 Linux文件与目录管理
  7. shell $x的含义
  8. eclipse 搭建springboot项目pom.xml报错
  9. rhel7 学习第三天
  10. 迁移生产环境的GItLab11.3.5到新的服务器