https://blog.csdn.net/xiaoquantouer/article/details/52015928

1、头文件
#include<queue>
2、定义
priority_queue<int> p;
3、优先输出大数据
priority_queue<Type, Container, Functional>
Type为数据类型, Container为保存数据的容器,Functional为元素比较方式。
如果不写后两个参数,那么容器默认用的是vector,比较方式默认用operator<,也就是优先队列是大顶堆,队头元素最大。
例如:

#include<iostream>
#include<queue>using namespace std;int main(){priority_queue<int> p;p.push(1);p.push(2);p.push(8);p.push(5);p.push(43);for(int i=0;i<5;i++){cout<<p.top()<<endl;p.pop();}return 0;}

输出:

4、优先输出小数据
方法一:
priority_queue<int, vector<int>, greater<int> > p;
例如:

#include<iostream>#include<queue>using namespace std;int main(){priority_queue<int, vector<int>, greater<int> >p;p.push(1);p.push(2);p.push(8);p.push(5);p.push(43);for(int i=0;i<5;i++){cout<<p.top()<<endl;p.pop();}return 0;}

输出:

方法二:自定义优先级,重载默认的 < 符号
例子:

#include<iostream>#include<queue>#include<cstdlib>using namespace std;struct Node{int x,y;Node(int a=0, int b=0):x(a), y(b) {}};struct cmp{bool operator()(Node a, Node b){if(a.x == b.x)   return a.y>b.y;return a.x>b.x;}};int main(){priority_queue<Node, vector<Node>, cmp>p;for(int i=0; i<10; ++i)p.push(Node(rand(), rand()));while(!p.empty()){cout<<p.top().x<<' '<<p.top().y<<endl;p.pop();}//while//getchar();return 0;
}

输出:

用法 stl_【c++】STL里的priority_queue用法总结相关推荐

  1. priority_queue 用法总结

    今天在写堆和哈夫曼树的ACM题的时候,接触到priority_queue的用法,由于比较函数的难些,请教过队内的红薯和杨大牛后才稍微弄明白些,下面总结如下,首先我是用手写的堆来过题的,其实和照黑书指导 ...

  2. 优先队列priority_queue 用法详解

    优先队列priority_queue 用法详解 优先队列是队列的一种,不过它可以按照自定义的一种方式(数据的优先级)来对队列中的数据进行动态的排序 每次的push和pop操作,队列都会动态的调整,以达 ...

  3. 总结——STL 常用数据结构及用法

    STL中常用数据结构及用法 C++中的STL(Standard Template Library),即标准模板库,中包含了很多编程时常用的数据结构,省去了自己临时写的麻烦,这里就来总结一下.如果有错误 ...

  4. STL 中map的用法详解

    STL 中map的用法详解 Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可 ...

  5. vector 清空 Linux,STL容器vector基础用法小结

    STL容器vector基础用法小结根据<ACM程序设计>写的,用实例展示vector用法. 方法:push_back(), insert(), erase(), clear(), size ...

  6. STL 算法接口及用法说明 (二)

    STL 算法接口及用法说明 copy copy 有两个重载,意义和用法较为明显,不做过多说明: template<class _InIt, class _OutIt> inline_Out ...

  7. 关于STL中的map用法

      STL中map用法详解         std map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力, ...

  8. C++ STL初学之vector用法及使用

    一.在C++中的详细说明 vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库. vector之所以被认为是一个容器,是因为它能够像容器一样存放各种 ...

  9. C++ STL容器 —— map/multimap 用法详解

    C++ STL容器 -- map/multimap 用法详解 写在前面:近期正在学习C++的STL容器,因此在这里做一下日志记录,主要介绍一些容器基本成员函数的用法, 配上实际用例,并不涉及原理.但别 ...

最新文章

  1. 【机器学习】机器学习算法优缺点对比(汇总篇)
  2. C# 中对COOKIES的操作
  3. [云炬python3玩转机器学习笔记] 3-2 Jupter Notebook魔法命令
  4. 如何应对云爆发架构?四种方法替你解忧
  5. [css] 除了可以用js跟踪用户信息外,如果不用js,使用纯css怎么做呢?
  6. 沉降观测曲线图 沉降观测汇总_这些沉降观测要求,工程人必须掌握!
  7. PHP 长连接,奏是这么简单
  8. Cookie中的httponly的属性和作用
  9. sklearn.preprocessing.PolynomialFeatures的使用
  10. css3中的perspective与perspective-origin
  11. 深度学习:图像识别(匹配)方法|室内定位|论文与方法整理
  12. vue项目运用繁体字
  13. 如何简单地将工资单发给员工?
  14. mappedBy reference an unknown target entity property错误
  15. WIFI实践入门--基本命令--iwconfig
  16. 【数学】连续,一致连续,Hölder连续,Lipschitz连续
  17. 计算机视觉 什么是图像配准?
  18. “全栈这个概念坑害了多少开发者
  19. WD蓝盘绿盘黑盘红盘的区别
  20. 小米设备token获取HomeAssistant安装部署

热门文章

  1. php=与-,谈谈PHP中的 -、= 和 :: 符号
  2. 【Python】self是干啥的?
  3. 英伟达jetson tx1开发套件配置tensorflow
  4. C++学习笔记之——引用 内联函数
  5. 组会PPT20201120《不同初始电子密度下ne和Te演化》
  6. [云炬创业基础笔记]第四章测试24
  7. 学长毕业日记 :本科毕业论文写成博士论文的神操作20160317
  8. 重磅 | 吴恩达新书《Machine Learning Yearning》1-52 最新章节分享
  9. Spatial Pyramid Pooling(空间金字塔池化)-变尺度CNN训练
  10. OpenGL编程指南12:光照_渲染真实球体