用法 stl_【c++】STL里的priority_queue用法总结
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用法总结相关推荐
- priority_queue 用法总结
今天在写堆和哈夫曼树的ACM题的时候,接触到priority_queue的用法,由于比较函数的难些,请教过队内的红薯和杨大牛后才稍微弄明白些,下面总结如下,首先我是用手写的堆来过题的,其实和照黑书指导 ...
- 优先队列priority_queue 用法详解
优先队列priority_queue 用法详解 优先队列是队列的一种,不过它可以按照自定义的一种方式(数据的优先级)来对队列中的数据进行动态的排序 每次的push和pop操作,队列都会动态的调整,以达 ...
- 总结——STL 常用数据结构及用法
STL中常用数据结构及用法 C++中的STL(Standard Template Library),即标准模板库,中包含了很多编程时常用的数据结构,省去了自己临时写的麻烦,这里就来总结一下.如果有错误 ...
- STL 中map的用法详解
STL 中map的用法详解 Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可 ...
- vector 清空 Linux,STL容器vector基础用法小结
STL容器vector基础用法小结根据<ACM程序设计>写的,用实例展示vector用法. 方法:push_back(), insert(), erase(), clear(), size ...
- STL 算法接口及用法说明 (二)
STL 算法接口及用法说明 copy copy 有两个重载,意义和用法较为明显,不做过多说明: template<class _InIt, class _OutIt> inline_Out ...
- 关于STL中的map用法
STL中map用法详解 std map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力, ...
- C++ STL初学之vector用法及使用
一.在C++中的详细说明 vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库. vector之所以被认为是一个容器,是因为它能够像容器一样存放各种 ...
- C++ STL容器 —— map/multimap 用法详解
C++ STL容器 -- map/multimap 用法详解 写在前面:近期正在学习C++的STL容器,因此在这里做一下日志记录,主要介绍一些容器基本成员函数的用法, 配上实际用例,并不涉及原理.但别 ...
最新文章
- 【机器学习】机器学习算法优缺点对比(汇总篇)
- C# 中对COOKIES的操作
- [云炬python3玩转机器学习笔记] 3-2 Jupter Notebook魔法命令
- 如何应对云爆发架构?四种方法替你解忧
- [css] 除了可以用js跟踪用户信息外,如果不用js,使用纯css怎么做呢?
- 沉降观测曲线图 沉降观测汇总_这些沉降观测要求,工程人必须掌握!
- PHP 长连接,奏是这么简单
- Cookie中的httponly的属性和作用
- sklearn.preprocessing.PolynomialFeatures的使用
- css3中的perspective与perspective-origin
- 深度学习:图像识别(匹配)方法|室内定位|论文与方法整理
- vue项目运用繁体字
- 如何简单地将工资单发给员工?
- mappedBy reference an unknown target entity property错误
- WIFI实践入门--基本命令--iwconfig
- 【数学】连续,一致连续,Hölder连续,Lipschitz连续
- 计算机视觉 什么是图像配准?
- “全栈这个概念坑害了多少开发者
- WD蓝盘绿盘黑盘红盘的区别
- 小米设备token获取HomeAssistant安装部署
热门文章
- php=与-,谈谈PHP中的 -、= 和 :: 符号
- 【Python】self是干啥的?
- 英伟达jetson tx1开发套件配置tensorflow
- C++学习笔记之——引用 内联函数
- 组会PPT20201120《不同初始电子密度下ne和Te演化》
- [云炬创业基础笔记]第四章测试24
- 学长毕业日记 :本科毕业论文写成博士论文的神操作20160317
- 重磅 | 吴恩达新书《Machine Learning Yearning》1-52 最新章节分享
- Spatial Pyramid Pooling(空间金字塔池化)-变尺度CNN训练
- OpenGL编程指南12:光照_渲染真实球体