【学习笔记】关于优先队列 Priority_queue-程序员宅基地

技术标签: 学习  学习笔记  

优先队列这个名字,顾名思义就是在队列中的元素是有优先级的。队列首部元素是队列中优先级最高的元素。

对于整形,实型,字符型等等是一样的:

///整形优先队列,按照从小到大排序:测试可输入任意五个整数。

#include <iostream>
#include <queue>
using namespace std;
int main()
{
    int i,a;
    priority_queue<int,vector<int>,greater<int> >qu;
    for(i=0;i<5;i++)
    {
        cin >>a;
        qu.push(a);
    }
    for(i=0;i<5;i++)
    {
        cout << qu.top()<<endl;
        qu.pop();
    }
}

在结构体中,我们可以这样写:

///整形优先队列,按照从小到大排序:测试可输入任意五个坐标,按x的大小排序,如果x相 
///等则按y从大到小排序,这是重新定义“<”实现的。  
#include <iostream>
#include <queue>   
using namespace std;
struct num
{
    int x,y;
     friend bo l operator < (num n1,num n2)
     {
         if(n1.x==n2.x)
         {
             return n1.y<n2.y;
         }
         else
         {
             return n2.x<n1.x;
         }

     }

};
int main()
{
    priority_queue <num,vector<num>,greater<num> >qu;
    int i;
    num a;
    for(i=0;i<5;i++)
    {
        cin >>a.x>>a.y;
        qu.push(a);
    }
    for(i=0;i<5;i++)
    {
        cout << qu.top().x<<' '<< qu.top().y<<endl;
        qu.pop();
    }
    return 0;
}

强调的是如果你只对结构体重定义了“<”,那么你只能用比较函数greater,less是用不了的。

当然相反的,如果你只对结构体重定义了">",那么就相反了。


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lin375691011/article/details/9703569

智能推荐

中国新四大发明背后的“数据智能”-程序员宅基地

文章浏览阅读1.5k次。现在美国是产业互联网强而消费互联网弱,而中国刚好反过来,消费互联网强而产业互联网弱,所以产业升级空间巨大,人工智能的产业应用阶段到来。

理解tf.clip_by_value()用法-程序员宅基地

文章浏览阅读517次。tf.clip_by_value(A, min, max):输入一个张量A,把A中的每一个元素的值都压缩在min和max之间。小于min的让它等于min,大于max的元素的值等于max。例如:import tensorflow as tf; import numpy as np; y = np.array([[8,2,1], [1,3,6]]) with tf.Session() as sess: print sess.run(tf.clip_by_value(y,

python代替shell脚本_Python是否可以替代Windows命令行/批处理脚本?-程序员宅基地

文章浏览阅读264次。我对bash有一些经验,我不介意,但是现在我正在做大量的Windows开发工作,我需要做一些基本的工作/使用Windows命令行语言。出于某种原因,所说的语言确实让我恼火,所以我考虑学习Python并使用它。Python适合这样的东西吗?移动文件,创建脚本来执行诸如解压缩备份和恢复SQL数据库等操作。对!我是最近的一个皈依者。我曾经写过大量的Windows BAT文件(加上Nant)来完成这些任务...

vue引入cesium,实现地球详细步骤_用vue创建cesium地球-程序员宅基地

文章浏览阅读793次。vue引入cesium_用vue创建cesium地球

java讀取eml文件-程序员宅基地

文章浏览阅读916次。writeTo方法可以把message信息寫入OutputStream,從洏可以保洊沖eml文件。項目中一個濡浗是需要把eml文件讀入並解析。  自己實現解析當然可以,不過挺複雜的,要實現信息頭的分析,信息本題的分析...首先想到的當然是javamail本身哋功能。  在google搜索了一下,果然找到了:  MimeMessage(Session session, java.io.I

导师吐槽:我怎么摊上了这么个极品研究生!-程序员宅基地

文章浏览阅读137次。点击上方“计算机视觉工坊”,选择“星标”干货第一时间送达现在有些研究生西装笔挺、英姿飒爽,嘴巴很会说,笔头也非常好。乍一看还能骗过不少面试官。可是,一到了用人单位,就像高老庄的猪八戒一样,...

随便推点

POI导入导出Excel数据(IDEA版)简单运用_poi导入excel数据_zhaoguoqing_1999的博客-程序员宅基地

文章浏览阅读8.2k次,点赞17次,收藏86次。一、POIApache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能,简单来说就是能在Java程序中导入导出Word,Excel,PPT,Visio等文件内容。二、使用POI运行环境:IDEA 2019.3.3 x64JDK 1.8.0_241Maven 3.6.3我将以Excel表格的导入导出为例,演示如何使用POI。1.创建Maven项目新建Maven项目,通过模板创建可以更快捷。配置电脑中_poi导入excel数据

9.第九篇 ASP内建对象Application 和 Session -程序员宅基地

文章浏览阅读1.2k次。 在上一篇中作者给大家详细介绍了 ASP 内建对象 Response 的使用方法,在这一篇中作者将继续给大家介绍另两个非常实用且重要的 ASP 的内建对象 Application 和 Session。    在 ASP 的内建对象中除了用于发送、接收和处理数据的对象外,还有一些非常实用的代表 Active Server 应用程序和单个用户信息的对象。   让我们先来看看 Application 对

web渗透测试----11、身份认证漏洞_七天啊的博客-程序员宅基地

文章浏览阅读4.3k次,点赞2次,收藏19次。文章目录一、什么是身份认证?1、身份认证三要素:2、身份认证和授权的区别:二、身份验证漏洞如何产生?三、身份认证常见的漏洞一、基于密码的登录漏洞1、密码破解2、用户名猜解3、用户名枚举4、目前防止暴力攻击的最常见方法是:二、双因子身份验证中的漏洞1、绕过双因子验证2、双因子验证逻辑错误3、暴力破解2FA验证码三、其他身份验证机制中的漏洞1、保持用户登录状态2、重置用户密码四、身份认证相关漏洞的防御一、什么是身份认证?身份认证是验证给定用户或客户端身份的过程。简单理解就是如何让别人相信你就是你。1、_身份认证漏洞

CS5261+VL171设计type-c母座转HDMI正反插方案-程序员宅基地

文章浏览阅读117次。CS5261+VL170支持Type-C母座正反插转HDMI投屏方案,CS5261 4K30HZ typec拓展方案芯片

如何从光盘本地安装CentOS 7图形界面(Gnome GUI)_https://blog.csdn.net/xiiii/article/details/888804-程序员宅基地

文章浏览阅读2.1k次。本例中通过在CentOS 7中修改repo文件,直接从光盘或者ISO镜像文件安装Gnome图形界面(Gnome GUI),从而避免耗时从官网或镜像下载。1.首先确保光盘或者ISO镜像文件正确连接到客户机,输入“mkdir /cdrom”在根目录下新建一个名为“cdrom”的文件夹, 继续输入“mount /dev/cdrom /cdrom”将光盘或者ISO镜像文件挂载到根目录下名为“cd..._https://blog.csdn.net/xiiii/article/details/88880419

USB-C正反插带PD快充USB3.0输出转HDMI/VGA音视频数据转换方案AG9321-MCQ_usb3.0正反插转换-程序员宅基地

文章浏览阅读763次。一、 AG9321MCQ特色1.双USB C型接口USB电源传输3.0符合性四个配置通道(CC),带有onchip Rp/Rd电阻器双重角色权力和快速角色互换2.显示端口接收器VESA显示端口 1.2合规性5.4(HBR2)时的1、2或4车道配置,每条通道2,7(HBR)和1.62(RBR)Gbps用于AUX的片上1 MΩ电阻器高达4096x2160/30Hz分辨率下行扩频时钟主链路交换配置3.HDMI发射机HDMI 1.4b符合性高达4096x2160p/30Hz分辨率_usb3.0正反插转换