目标:使用结构体Node类型的优先队列,让其按照我们希望的顺序进行排序。

预备知识:会结构体的定义,和结构体类型的优先队列的定义,知道优先队列默认是最大堆排序(即top()得到的是最大的元素)

要做的事:在结构体内部重载小于号,即在结构体内加入以下内容

friend bool operator < (Node a,Node b){if(a.label!=b.label){return a.label < b.label};//希望label大的先出else return a.data > b.data;//希望data小的先出
}

友情提示:priority_queue不像queue,没有front()和back()方法,只有top()方法。像是queue和stack的杂交。

代码:

#include<queue>
#include<cstdio>using namespace std;struct Node{int data;int label;friend bool operator < (Node a,Node b){if(a.label!=b.label)return a.label<b.label;else return a.data > b.data; }Node(int _data,int _label):data(_data),label(_label){}
};priority_queue<Node> Q; int main(){Node a = Node(1,1);Node b = Node(1,2);Node c = Node(2,1);Node d = Node(2,2);//把4个结点放进队列的先后顺序是无所谓的 Q.push(a);Q.push(b);Q.push(c);Q.push(d);//期望输出顺序是 b d a cwhile(!Q.empty()){printf("data = %d,label = %d\n",Q.top().data,Q.top().label);Q.pop();} return 0;
}

priority_queue 结构体的优先级设置相关推荐

  1. task_struct结构体的优先级参数详解:prio、static_prio、normal_prio、rt_priority

    文章目录 task_struct 结构体 prio 调度优先级 normal_prio 正常优先级 static_prio 静态优先级 rt_priority 实时优先级 应用编程修改调度策略 SCH ...

  2. 串口termios结构体的详细设置

    termios结构体内容: <span style="font-size:18px;">成员 描述 ---------------------------------- ...

  3. 串口流控制DCB结构体解析及设置

    一.串口通信结构体意义解析: typedef struct _DCB { DWORD DCBlength; DWORD BaudRate; //波特率 DWORD fBinary :1; DWORD ...

  4. termios结构体的详细设置

    termios结构体内容: 成员 描述 c_cflag 控制模式标志 c_lflag 本地模式标志 c_iflag 输入模式标志 c_oflag 输出模式标志 c_line line discipli ...

  5. c++如何对结构体作为形参设置默认值

    代码之下,了无疑问 #include <Windows.h> #include <iostream> using namespace std;class fuck { priv ...

  6. (转)C++优先队列中元素及结构体的排序

    文章转自:smile_kai的博客 1 /*使用标准库的栈*/ 2 3 #include <stack> //头文件 4 5 stack<int> s; //定义一个 int ...

  7. Linux串口通信之termios结构体

    转 termios结构体的详细设置 2012年08月20日 23:42:47 阅读数:5210 termios结构体内容: 查看全文 http://www.taodudu.cc/news/show-4 ...

  8. struct sk_buff结构体详解

    struct sk_buff是linux网络系统中的核心结构体,linux网络中的所有数据包的封装以及解封装都是在这个结构体的基础上进行. 1 2 3 4 5 6 7 8 9 10 11 12 13 ...

  9. 【HDU】1084 What Is Your Grade? (结构体 sort)

    http://acm.hdu.edu.cn/showproblem.php?pid=1084 题目的关键: 1.Note, only 1 student will get the score 95 w ...

最新文章

  1. #6073. 「2017 山东一轮集训 Day5」距离(树链剖分 + 永久标记主席树)
  2. CF1444C-Team-Building【可撤销并查集】
  3. 【JAVA基础】一:聊聊笔试常见到的 “==、equal” 比较是否相等的内在差别
  4. asp.net core mvc接口,请求响应统一日志管理
  5. jsp示例-response页面重定向
  6. Qt creator5.7 OpenCV249之中值滤波(含源码下载)
  7. Python_内置模块1
  8. mysql默认密码是多少_路由器192.168.1.1默认登录密码是多少?
  9. 008 - vue node rem
  10. 科学和工程中的信号处理
  11. python数据环境的搭建_Python数据分析环境搭建
  12. Spine(2d动画制作软件)绿色中文最终优化版V3.8.75 | spine动画软件下载
  13. 【转载】高斯滤波器详解
  14. TwinCAT软件的帮助如何使用
  15. 计算流体力学CFD入门教程介绍
  16. 网上邻居的计算机用户名与密码是什么,访问网上邻居需要用户名和密码解决办法...
  17. 【WZOI】默写数字
  18. 6.1 CUDA: pinned memory固定存储
  19. 【产品运营从0到1】资深产品运营推荐的互联网产品运营人员必看书籍
  20. 桌面新建文件夹不显示缩图_如何在Windows 10桌面上创建不可见的文件夹

热门文章

  1. H5用户地址位置选择地点获取经纬度(效果图)
  2. ant models 内获取 url 的参数传递到组件
  3. 3-runtime 之 Tagged Pointer
  4. Block 底层值__Block修饰符
  5. 阿里最强热修复:Sophix 超高速集成与踩坑
  6. 5G将成开启物联网时代的金钥匙
  7. 最佳DevOps工具获奖者:CloudBees Jenkins平台
  8. Remove Duplicates from Sorted Array II -- LeetCode
  9. 前端开发之retina屏幕
  10. C++简单使用Jsoncpp来读取写入json文件