Priority_Queue称为优先队列,是一种给按照优先级顺序存储的队列,拥有queue的结构,同时拥有自动排序的能力。

1、常用函数

1.1 pop()

出队

1.2 top()

取队首元素

1.3 push()

入队

1.4 empty()

如果队空,则返回true

1.5 size()

返回队列大小

2、 优先级设置

2.1 基本数据类型

基本数据类型指的是 int, double ,char。
默认情况下数字越大,优先级越高。

priority_queue<double> q;

设置数字越小优先级越高。less<type>表示数越大优先级越高,greater<type>表示数越小优先级越大。

priority_queue<double, vector<double>, greater<double>> q;

2.2 结构体优先级设置

比如水果的价格越高优先级越高。

这里必须要定义结构体里面的friend函数,修改修改return语句部分即可,外层的小于号不能动。指定元素越大,优先级越高就要使用小于号,指定元素越小,优先级越高要使用大于号。
sort函数中自定义的cmp函数,如果向从大到小排列使用大于号,若想从小到大排列则使用小于号。似乎正好这个相反的,读者不要记混了。

#include<iostream>
#include<algorithm>
#include<cmath>
#include<queue>using namespace std;struct fruit{string name;int price;friend bool operator < (fruit f1, fruit f2){return f1.price < f2.price;}
};int main(){priority_queue<fruit> q;fruit a = {"桃子", 5};fruit b = {"苹果", 45};fruit c = {"火龙果",1};q.push(a);q.push(b); q.push(c);cout << q.top().name << endl;return 0;
}

SET-Priority_Queue相关推荐

  1. C++ Stack Queue priority_queue

    栈stack:stack 后入先出(LIFO) q.top() 获取栈顶元素(并不删除) q.pop() 删除栈顶元素 q.push(x) 向栈中加入元素 q.empty() 判断栈是否为空 队列qu ...

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

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

  3. C++/C++11中std::priority_queue的使用

    std::priority_queue:在优先队列中,优先级高的元素先出队列,并非按照先进先出的要求,类似一个堆(heap).其模板声明带有三个参数,priority_queue<Type, C ...

  4. C++STL 优先队列priority_queue使用

    头文件:#include <queue> 一.申明方式 std::priority_queue<T> q; std::priority_queue<T, std::vec ...

  5. priority_queue 结构体的优先级设置

    目标:使用结构体Node类型的优先队列,让其按照我们希望的顺序进行排序. 预备知识:会结构体的定义,和结构体类型的优先队列的定义,知道优先队列默认是最大堆排序(即top()得到的是最大的元素) 要做的 ...

  6. STL queue priority_queue

    queue 队列 queue 队列 就像排队一样,后来的排在后面,先来的先出队.所以只能对队首和队尾的元素进行操作 back() 返回最后一个元素 empty() 如果队列空则返回真 front() ...

  7. 【HDU/算法】最短路问题 杭电OJ 2544 (Dijkstra,Dijkstra+priority_queue,Floyd,Bellman_ford,SPFA)

    最短路径问题是图论中很重要的问题. 解决最短路径几个经典的算法 1.Dijkstra算法 单源最短路径(贪心),还有用 priority_queue 进行优化的 Dijkstra 算法. 2.bell ...

  8. C++ STL中的优先队列(priority_queue)使用

    原文:https://www.cnblogs.com/cielosun/p/5654595.html 今天讲一讲优先队列(priority_queue),实际上,它的本质就是一个heap,我从STL中 ...

  9. C++_STL——queue(and priority_queue)

    C++_STL--queue(and priority_queue) queue: template <class T, class Container = deque<T> > ...

  10. [C/C++标准库]_[初级]_[优先队列priority_queue的使用]

    2019独角兽企业重金招聘Python工程师标准>>> std::priority_queue 场景: 1. 对于一个任务队列,任务的优先级由任务的priority属性指明,这时候就 ...

最新文章

  1. python---websocket的使用
  2. 图论-最短路径--3、SPFA算法O(kE)
  3. SAP Web IDE本地环境搭建
  4. Java程序员面试中的多线程问题
  5. php +号在传输参数的过程中被变为空格了_编程难学?web相关知识,跟着淼哥学php全栈之路6...
  6. 自制简易AP柱面定向天线(zz)
  7. java jwt 验证_教程:用Java创建和验证JWT
  8. 谷歌排名第一的编程语言,收下这份资料,小白也能学的会!
  9. 6、二、App Components(应用程序组件):1、Intents and Intent Filters(意图和意图过滤器)...
  10. 解决 Docker Image的UTF-8中文字符集的问题(以Oracle为例)
  11. 操作系统数据结构知识点总结1
  12. VDownloader(网页视频下载软件)官方正式版V5.0.4113 | 油管视频下载神器 | 网页视频怎么下载到本地视频?
  13. nn.PReLU()和nn.ReLU
  14. php生成word,并下载
  15. 被雅虎3000万美金收购的Summly没有核心技术!
  16. UltraVNC源码编译运行
  17. Java面试题总结之数据结构、算法和计算机基础(刘小牛和丝音的爱情故事1)
  18. 目标决定人生——没有目标就失去一切!
  19. 【新知实验室】TRTC腾讯实时音视频动手实验
  20. Google word/sheets 常见的使用:

热门文章

  1. RAC环境下管理OGG-HA
  2. cpp存储类型说明符(storage class specifier)
  3. Java对象头与monitor
  4. sql group by统计
  5. 使用ntp协议同步时间,chronyc sources -v 同步时间
  6. 了解Spring AOP吗
  7. Spring Ioc之初始化
  8. linux-Centos 7下bond与vlan技术的结合[推荐]
  9. web安全:sql 注入
  10. [原创]mac终端前面的计算机名怎么改??