优先队列的优先级设置法
来源:互联网 发布:淘宝手机店铺装修图 编辑:程序博客网 时间:2024/06/05 09:58
优先队列也是用 #include<queue>
这个头文件,且不必引入vector的头文件
基础类型优先级设置
默认定义:
+ priority_queue<int>
大顶堆
手工设置:
priority_queue<int, vector<int>, less<int>>
大顶堆:表示其他都比堆顶小priority_queue<int, vector<int>, greater<int>>
小顶堆:表示其他都比堆顶大
后面补充的两个参数:内部用容器+规则。
既然默认是大顶堆,所以手动设置时只用管小顶堆即可,greater!.
#include <cstdio>// #include <vector>#include <queue>using namespace std;int main(){ priority_queue<int, vector<int> ,greater<int> > q; q.push(3); q.push(2); q.push(1); printf("%d\n", q.top()); return 0;}
结构体设置优先级:
只可在结构体内部重载小于号。
两种重置用法:
- 运算符重载 + 友元
struct fruit{ string name; double price; friend bool operator< (fruit f1, fruit f2) { return f1.price < f2.price; // 相当于less,这是大顶堆,反之则是小顶堆 }} f1, f2, f3; //定义三个结构体变量这样直接可以:`priority_queue<fruit > q;`
- 比较运算符外置
struct fruit{ string name; double price;} f1, f2, f3; //定义三个结构体变量struct cmp{ bool operator () (fruit f1, fruit f2) // 重载括号 { return f1.price < f2.price; // 等同于less }};
调用语法是:priority_queue<fruit,vector<fruit> , cmp > q;
//这个和基本类型的用法就相似了,只不过是用cmp代替了less或者greater
1 1
- 优先队列的优先级设置法
- 优先队列及其优先级设置
- STL 优先队列的 优先级
- STL 优先队列的优先级
- STL 优先队列的优先级
- STL 优先队列的 优先级
- STL优先队列的优先级
- 优先队列的优先级定义
- STL 优先队列的优先级
- 优先队列(堆)优先级设置笔记
- 优先队列 自定义优先级
- STL 优先队列 定义 优先级
- STL 优先队列 定义 优先级
- 优先级队列:关键字小的优先处理。数组结构实现的优先级队列
- C++ 优先队列 priority_queue 的基本使用方法【定义优先级】
- C++ priority_queue 优先队列 改变优先级
- 最大优先队列中增加优先级
- Hadoop 设置任务执行的队列以及优先级
- 常用日期处理方法
- 树状数组 原理及分析
- ListView控件点击无响应
- BigEndian&LittleEndian
- test
- 优先队列的优先级设置法
- grep进行多模式过滤
- Android service 之启动服务
- android sercice之绑定服务
- DrawerLayout,NavigationView 和 ActionBar的使用
- 读《成功的背后(给所有的IT人)》有感
- java初学者--实现二进制加法
- Python 与游戏测试 (小工具篇)
- android 之内容提供者与访问者 --- 练习