priority_queue优先队列的用法总结
最近在刷题时很多次遇到了优先队列的用法,在这里mark一下,做个总结。
介绍:
既然是队列,那么先要包含头文件#include , 他和queue不同的就在于:我们可以自定义其中数据的优先级, 让优先级高的排在队列前面,优先出队
优先队列具有队列的所有特性,包括基本操作,只是在这基础上添加了内部的一个排序,它本质是一个堆实现的
注意:
代码中的所有语句都被注释掉了,以方便读者复制到自己的编译器中理解,调试。对哪段不理解直接取消注释运行就行了。
代码:
#include<iostream>
#include<cstdio>
#include<queue>using namespace std ;struct cmp { operator bool ()(int x, int y) { return x > y; } // x小的优先级高,是优先级高!!!!!!!!!!!struct node { int x, y; friend bool operator < (node a, node b) { return a.x > b.x; } //结构体中,x小的优先级高
};int main()
{// priority_queue<int, vector<int>, greater<int> > q; //升序排列
// priority_queue<int>q; //默认降序 // 1、队尾压入元素
// q.push(1); // 2、队头弹出元素
// q.pop() ;// 3、输出队头元素
// cout << q.top() ; // 4、判断是否为空
// q.empty();// 5、判断大小
// cout << q.size() ; // 特殊的:
// 1、自定义优先级
// priority_queue<int, vector<int>, cmp> q; //cmp的函数在上面 // 2、结构体优先队列的定义方式
// priority_queue<node>q; //node的定义在上面 return 0; }
最后,分享一条大牛的建议(对笔者受益匪浅):平时在做题的时候,一定要寻找最优解,而不是 ac 了就不管了,应该多看看别人的解法。
priority_queue优先队列的用法总结相关推荐
- c++ std::priority_queue优先队列
template <class T, class Container = vector<T>,class Compare = less<typename Container:: ...
- 2020-12-17 【 java优先队列的用法】
java优先队列的用法 peek是top() 只取最上面的元素 poll是pop() 弹出 add是添加 push 类的比较器,相对于仿函数 struct cmp{ bool operator ()( ...
- [C++STL教程]7.priority_queue优先队列入门学习!零基础都能听懂的教程
不知不觉C++STL教程系列已经第7期了.之前我们介绍过:vector, queue, stack, set, map等等数据结构. 今天我们来学习一个新的stl容器:priority_queue优先 ...
- priority_queue优先队列的使用方法
说到优先队列,大家肯定想到了队列(这肯定是对于学过队列的同学来说,当然了,没学过也没事,对于本篇文章没什么问题滴),队列的特征是后进后出,按照排队先来后到的顺序的,本篇文章介绍的priority_qu ...
- 理解至上:二叉堆与优先队列详细用法
文章目录 二叉堆 概述 插入 代码 访问 代码 完整代码 优先队列:priority_queue 基本用法 小根堆的声明: 结构体 注意 Thanks for reading! 二叉堆 概述 为什么不 ...
- priority_queue 优先队列
优先队列是单向队列的一种,可以按照默认或自定义的一种方式来对队列中的数据进行动态排序 template<class _Ty, class _Container = vector<_Ty&g ...
- c++ 优先队列_std::priority_queue(优先队列)
priority_queue<Type, Container, Functional> //Type 数据类型, //Container 容器类型(必须是用数组实现的容器,比如vector ...
- priority_queue的常见用法详解
目录 前言 priorithy_queue的定义 priority_queue容器内元素的访问 priority_queue常用函数 priority_queue内元素优先级的设置 priority_ ...
- priority_queue优先队列
引入 优先队列是一种特殊的队列,在学习堆排序的时候就有所了解. 那么优先队列是什么呢? 说白了,就是一种功能强大的队列. 它的功能强大在哪里呢? 四个字:自动排序. 优先队列的头文件&&a ...
最新文章
- 《互联网理财一册通》一一第12章 移动互联网“指尖上的理财”
- MATLAB实战系列(十七)-大学生数学建模赛题解析-水塔中水流量估计(附MATLAB源码)
- spring data redis使用示例
- QT的QFileDialog类的使用
- 知乎超热门话题:为什么要考985?
- 《c语言从入门到精通》看书笔记——第10章 指针
- 51ak带你看MYSQL5.7源码2:编译现有的代码
- Android学习点点滴滴之获取正在运行的进程
- 终端实体店消费者喜爱的营销方式
- Android BroadcastReceiver示例教程
- C语言 判断 101 到 200 之间的素数
- Thinkphp响应式第三四方聚合支付平台源码
- win10 uwp 自定义控件初始化
- ESPHome 和 Home Assistant传感器之TMT6000 环境光握手
- 一朝清明不若鸿蒙什么意思,清明将至,俗语“三代不祭祖,祭祖绝后代”是啥意思?老话在理吗...
- 阿里云服务器可以做什么?买来吃灰?
- 基因测序、大数据分析——精准治癌正在成为现实
- matlab信息隐藏和提取,使用matlab进行图像信息隐藏和提取
- vue后台管理侧边栏菜单布局
- EEROM和FRAM写入速度比较