#include<iostream>
#include <queue>
using namespace std;
int main()
{
//对于基础类型 默认是大顶堆
priority_queue<int> a;
//等同于 priority_queue<int, vector<int>, less<int> > a; // 这里一定要有空格,不然成了右移运算符↓
priority_queue<int, vector<int>, greater<int> > c; //这样就是小顶堆
priority_queue<string> b; for (int i = 0; i < 5; i++)
{
a.push(i);
c.push(i);
}
while (!a.empty())
{
cout << a.top() << ' ';
a.pop();
}
cout << endl; while (!c.empty())
{
cout << c.top() << ' ';
c.pop();
}
cout << endl; b.push("abc");
b.push("abcd");
b.push("cbd");
while (!b.empty())
{
cout << b.top() << ' ';
b.pop();
}
cout << endl;
return 0;
}

优先队列实质就是堆实现的;

默认的定义优先队列是大根堆,即父节点的值大于子节点的值。

 priority_queue<int> a;
//等同于 priority_queue<int, vector<int>, less<int> > a;
当然也可以定义小根堆:
priority_queue<int, vector<int>, greater<int> > c;  //这样就是小顶堆
将pair加入到队列中:
priority_queue<pair<int, int> > a;//先比较first 再比较second

对于优先队列的操作;
top 访问队头元素
empty 队列是否为空
size 返回队列内元素个数
push 插入元素到队尾 (并排序)
emplace 原地构造一个元素并插入队列
pop 弹出队头元素
swap 交换内容
只能从队列后边加入,从队列前边拿出,在遍历的时候可以通过p.size()或者p.empty();
摘抄自自博客https://blog.csdn.net/weixin_36888577/article/details/79937886

最新文章

  1. 浏览器兼容innerText nextElementSibling firstElementChild
  2. C#语句2——循环语句(for穷举、迭代和while循环)
  3. memcache 的内存管理介绍和 php实现memcache一致性哈希分布式算法
  4. UNIX环境高级编程笔记之进程控制
  5. GitHub windows客户端拉代码和提交代码
  6. C++对象的JSON序列化与反序列化探索
  7. grub2 使用memdisk工具 启动任意iso
  8. 安装 SQL Server2008 安装程序规则支持提示“重新启动计算机”失败
  9. Android Manifest.xml 结构详解
  10. Windows下一个MySQL有些错误的解决方法
  11. 【Zookeeper】源码分析之网络通信(二)
  12. PHP die与exit的区别
  13. 关于Kafka配额的讨论(2)
  14. Eclipse中Lombok的安装和注解说明
  15. 记一次线上bug排查-quartz线程调度相关
  16. [Noi2014]购票 BZOJ3672 点分治+斜率优化+CDQ分治
  17. 交互题(二分)(D. Game with modulo)
  18. Codeforces Round #368 (Div. 2) B. Bakery 水题
  19. 【C】——如何用线程进行参数的传递
  20. OpenFileDialog 打开快捷方式时,返回的是快捷方式引用的路径,而不是快捷方式(.lnk)自身的路径

热门文章

  1. 【Linux】salt的cmd.script命令介绍
  2. 【Oracle】整库导出后怎么恢复到指定用户的指定表
  3. kubernets之job资源
  4. 视图V_160M和表T_160M的维护
  5. 1V升压5V和1.5V升压5V的集成电路芯片
  6. 1.8V转5V电平转换芯片,1.8V转5V的电源芯片
  7. 安装jdk-windows系统
  8. Python hashlib的简单使用
  9. MySQL之谓词下推
  10. Turbo Boyer-Moore algorithm