优先队列的优先级设置法
优先队列也是用 #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.
2019.2.19 updates.
END.
优先队列的优先级设置法相关推荐
- 邮件发送类,支持HTML格式,支持优先级设置
www.chinacs.net 2002-5-9 中文C#技术站 邮件发送类,支持HTML格式,支持优先级设置.通过SOCKET类实现的 using System; using System.Te ...
- linux设置进程优先级,Linux线程属性及优先级设置
POSIX.1线程属性及优先级设置 By zieckey All Right Reserved 线程的属性由pthread_attr_t结构类型表示. 在使用pthread_attr_t之前,需要调用 ...
- cortex M内核优先级设置
Cortex M内核中 每个中断都有一个8位的优先级设置寄存器 这个8位的寄存器可以分为抢占优先级和子优先级两个部分(通过设置优先级组设置) 抢占优先级和子优先级有什么用? 举例说明: 有两个中断A. ...
- linux线程调度函数,Linux调度策略及线程优先级设置
Linux内核的三种调度策略: 1,SCHED_OTHER 分时调度策略, 2,SCHED_FIFO实时调度策略,先到先服务.一旦占用cpu则一直运行.一直运行直到有更高优先级任务到达或自己放弃 3, ...
- Android线程优先级设置方法技巧
对于Android平台上的线程优先级设置来说可以处理很多并发线程的阻塞问题, 比如很多无关紧要的线程会占用大量的CPU时间,虽然通过了MultiThread来解决慢速I/O但是合理分配优先级对于并发编 ...
- Java 线程实例一(查看线程是否存活、获取当前线程名称、状态监测、线程优先级设置、死锁及解决方法、获取线程id、线程挂起)
查看线程是否存活 以下实例演示了如何通过继承 Thread 类并使用 isAlive() 方法来检测一个线程是否存活: public class TwoThreadAlive extends Thre ...
- MUI 宫格组件(grid)怎么取消mui-active背景色?(优先级设置问题)- 踩坑篇
MUI 宫格组件(grid)怎么取消mui-active背景色?(优先级设置问题) 对比 · 截图如下: 踩坑总结 · 点击取消效果 · 举例: 优先级: background > backgr ...
- 进程的优先级设置与获取,进程时间
进程的优先级设置与获取:值越小优先级越高 #include <sys/time.h> #include <sys/resource.h> ...
- Linux线程属性及优先级设置
Linux线程属性及优先级设置 [原文引自]http://hikesoso2010.spaces.eepw.com.cn/articles/article/item/86413# 线程的属性由pthr ...
最新文章
- Docker for Windows 使用 VMware WorkStation
- mysql自定义多选排序_前端框架(二)DIV多选复选框框的封装和MySql数据库存取...
- 阿里云mariadb无法启动问题
- leetcode239. 滑动窗口最大值
- layer 线上_LAYER
- php怎么构造一个验证码,PHP封装一个生成验证码的函数
- dataframe一列按长度补0_Pandas中Series和DataFrame基础功能详解
- 「代码随想录」968.监控二叉树【贪心算法】力扣详解!
- java unicodeblock_Character.UnicodeBlock中cjk的说明详解
- 驾驶员监控系统 DMS
- 单词拼写检查之cutoff距离
- matlab识别中国象棋棋盘,c – 使用OpenCV在棋盘中检测中国象棋棋子
- 2018年年度总结-工作成长
- LeetCode - Trangle
- matlab导入word数据,matlab导入word
- LabVIEW控制Arduino采集DHT11温湿度数值(进阶篇—4)
- Wordpress 修改 mysql 插件_WordPress批量查找替换修改文章内容的插件和代码
- dcdc降压电路基本原理及设计实例
- 人工智能之机器学习简介
- python的学习笔记案例1--汇率兑换4.0
热门文章
- yolov3从头实现(四)-- darknet53网络tf.keras搭建
- 仿射解密c语言程序实验报告,仿射加密解密 - 依姆哣特的个人空间 - OSCHINA - 中文开源技术交流社区...
- select 实现类似多线程_linux进程通信--socket套接字(四)--多路IO转实现一个server对应多个client...
- windos 服务怎么写_我的产品或服务怎么写?
- linux安装cd dev ls,linux 第一节 安装
- inno setup安装之前关闭mysql_innosetup安装之前关闭进程
- 父元素浮动子元素会浮动吗_为什么quot;overflow:hiddenquot;能清除浮动的影响
- java clone 深拷贝_Java clone() 浅拷贝 深拷贝
- java静态类_Java静态类
- 使用Shell和Java驱动程序的MongoDB身份验证配置示例