博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
优先队列 C++
阅读量:7255 次
发布时间:2019-06-29

本文共 1232 字,大约阅读时间需要 4 分钟。

1.头文件:include<queue>

2.定义:优先队列和队列一样,只能从队尾插入元素,从队首删除元素。队列中最大的元素总是位于队首。可以通过重载<运算符来重新定义比较规则。

3.优点:自动排序

4.声明:priority_queue<数据类型> 队列名;

5.常用的声明:

5.1基本常量的优先队列:

priority_queue
q1;priority_queue
q2;

5.2常用的优先队列:

priority_queue 
,greater
> q;//使元素按照从小到大顺序出队 priority_queue
,less
> q2;//降序排列 ,无需声明vector头文件
5.3自定义结构体优先队列
#include
#include
using namespace std;struct Node{ int id; int x;}; bool operator < (const Node &a,const Node &b){ return a.id
q; return 0;}

6.常用操作:

empty()    如果队列为空,则返回真

pop()    删除队列第一个元素

push()    加入一个元素

size()    返回队列的元素个数

top()    取队顶元素

7.测试代码:

#include
#include
using namespace std;struct Node{ int id; int x; Node (int id,int x):id(id),x(x){} void print(){ cout << id << " " << x << endl; }}; bool operator < (const Node &a,const Node &b){ return a.id < b.id;}int main(){ priority_queue
q; int id,x; do{ cin >> id >> x; q.push(Node(id,x)); }while(id != 0); while(!q.empty()){ Node a = q.top(); q.pop(); a.print(); } return 0;}

转载于:https://www.cnblogs.com/long98/p/10352242.html

你可能感兴趣的文章
最新2018年全球DevOps薪资报告:行业和团队选择指南
查看>>
Visual Studio 15.4发布,新增多平台支持
查看>>
Swift和Objective-C的运行时编程
查看>>
OneAPM挂牌新三板,续写ITOM新篇章
查看>>
KubeEdge:开源的Kubernetes原生边缘计算框架
查看>>
Stefan Tilkov:跳过单体应用,从微服务开始
查看>>
华为2018:年收入首破千亿美元大关,研发投入过千亿
查看>>
云计算怎么支撑起《流浪地球》的硬科幻实力?
查看>>
微服务基础架构的5个关键问题
查看>>
Git漏洞导致攻击者可在用户电脑上运行任意代码
查看>>
360首席安全官谭晓生宣布离职
查看>>
《与编码人员一起工作》作者访谈
查看>>
编写Linux内核模块——第一部分:前言
查看>>
python学习笔记 - StringIO以及BytesIO
查看>>
消息称微软计划收购GitHub,估值超50亿美元
查看>>
Netflix Play API:我们为什么构建了一个演进式架构?
查看>>
知乎推荐页Ranking构建历程和经验分享
查看>>
Web性能API——帮你分析Web前端性能
查看>>
Swift 4正式发布,新功能概览
查看>>
谈谈基于机器学习的编程到底比传统编程强在哪里?
查看>>