最近在刷题时很多次遇到了优先队列的用法,在这里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优先队列的用法总结相关推荐

  1. c++ std::priority_queue优先队列

    template <class T, class Container = vector<T>,class Compare = less<typename Container:: ...

  2. 2020-12-17 【 java优先队列的用法】

    java优先队列的用法 peek是top() 只取最上面的元素 poll是pop() 弹出 add是添加 push 类的比较器,相对于仿函数 struct cmp{ bool operator ()( ...

  3. [C++STL教程]7.priority_queue优先队列入门学习!零基础都能听懂的教程

    不知不觉C++STL教程系列已经第7期了.之前我们介绍过:vector, queue, stack, set, map等等数据结构. 今天我们来学习一个新的stl容器:priority_queue优先 ...

  4. priority_queue优先队列的使用方法

    说到优先队列,大家肯定想到了队列(这肯定是对于学过队列的同学来说,当然了,没学过也没事,对于本篇文章没什么问题滴),队列的特征是后进后出,按照排队先来后到的顺序的,本篇文章介绍的priority_qu ...

  5. 理解至上:二叉堆与优先队列详细用法

    文章目录 二叉堆 概述 插入 代码 访问 代码 完整代码 优先队列:priority_queue 基本用法 小根堆的声明: 结构体 注意 Thanks for reading! 二叉堆 概述 为什么不 ...

  6. priority_queue 优先队列

    优先队列是单向队列的一种,可以按照默认或自定义的一种方式来对队列中的数据进行动态排序 template<class _Ty, class _Container = vector<_Ty&g ...

  7. c++ 优先队列_std::priority_queue(优先队列)

    priority_queue<Type, Container, Functional> //Type 数据类型, //Container 容器类型(必须是用数组实现的容器,比如vector ...

  8. priority_queue的常见用法详解

    目录 前言 priorithy_queue的定义 priority_queue容器内元素的访问 priority_queue常用函数 priority_queue内元素优先级的设置 priority_ ...

  9. priority_queue优先队列

    引入 优先队列是一种特殊的队列,在学习堆排序的时候就有所了解. 那么优先队列是什么呢?  说白了,就是一种功能强大的队列. 它的功能强大在哪里呢?  四个字:自动排序. 优先队列的头文件&&a ...

最新文章

  1. 《互联网理财一册通》一一第12章 移动互联网“指尖上的理财”
  2. MATLAB实战系列(十七)-大学生数学建模赛题解析-水塔中水流量估计(附MATLAB源码)
  3. spring data redis使用示例
  4. QT的QFileDialog类的使用
  5. 知乎超热门话题:为什么要考985?
  6. 《c语言从入门到精通》看书笔记——第10章 指针
  7. 51ak带你看MYSQL5.7源码2:编译现有的代码
  8. Android学习点点滴滴之获取正在运行的进程
  9. 终端实体店消费者喜爱的营销方式
  10. Android BroadcastReceiver示例教程
  11. C语言 判断 101 到 200 之间的素数
  12. Thinkphp响应式第三四方聚合支付平台源码
  13. win10 uwp 自定义控件初始化
  14. ESPHome 和 Home Assistant传感器之TMT6000 环境光握手
  15. 一朝清明不若鸿蒙什么意思,清明将至,俗语“三代不祭祖,祭祖绝后代”是啥意思?老话在理吗...
  16. 阿里云服务器可以做什么?买来吃灰?
  17. 基因测序、大数据分析——精准治癌正在成为现实
  18. matlab信息隐藏和提取,使用matlab进行图像信息隐藏和提取
  19. vue后台管理侧边栏菜单布局
  20. EEROM和FRAM写入速度比较

热门文章

  1. Kafka解析之失效副本
  2. 从Java角度看Golang
  3. 高并发服务遇 redis 瓶颈引发的事故
  4. ​5G+AI时代的高效视频处理
  5. 【大会】编码、画质评价与网络协议的未来
  6. 从零开始的C++网络编程
  7. Linux基金会六大项目合并成LF Networking Fund
  8. 基于STM32CubeMX创建STM32L496ZGTx的工程
  9. centos虚拟机ping不通 报错 name or service not known
  10. 网易数据中台建设实践