c++优先队列(priority_queue)用法详解
2021-04-10 17:28
标签:定义类 运算符 包括 ios 输出 空格 include cond opera 既然是队列那么先要包含头文件 优先队列具有队列的所有特性,包括基本操作,只是在这基础上添加了内部的一个排序,它本质是一个堆实现的 和队列基本操作相同: top 访问队头元素 empty 队列是否为空 size 返回队列内元素个数 push 插入元素到队尾 (并排序) emplace 原地构造一个元素并插入队列 pop 弹出队头元素 swap 交换内容 定义:priority_queue 基本类型例子: 输出: 2.pari的比较,先比较第一个元素,第一个相等比较第二个 输出: 3.对于自定义类型 输出: c++优先队列(priority_queue)用法详解 标签:定义类 运算符 包括 ios 输出 空格 include cond opera 原文地址:https://www.cnblogs.com/MrLiuZF/p/13365495.html#include
, 他和queue
不同的就在于我们可以自定义其中数据的优先级, 让优先级高的排在队列前面,优先出队
Type 就是数据类型,Container 就是容器类型(Container必须是用数组实现的容器,比如vector,deque等等,但不能用 list。STL里面默认用的是vector),Functional 就是比较的方式,当需要用自定义的数据类型时才需要传入这三个参数,使用基本数据类型时,只需要传入数据类型,默认是大顶堆
一般是://升序队列
priority_queue int,vectorint>,greaterint> > q;
//降序队列
priority_queue int,vectorint>,lessint> >q;
//greater和less是std实现的两个仿函数(就是使一个类的使用看上去像一个函数。其实现就是类中实现一个operator(),这个类就有了类似函数的行为,就是一个仿函数类了)
#include
4 3 2 1 0
0 1 2 3 4
cbd abcd abc
#include
2 5
1 3
1 2
#include
3
2
1
3
2
1
文章标题:c++优先队列(priority_queue)用法详解
文章链接:http://soscw.com/index.php/essay/73893.html