刷前学习:
优先队列(priority_queue)用法:
-
相同处:
-
同queue,都需要使用
#include<queue>
; -
和队列的基本操作相同
1、top访问队头元素 2、pop弹出队头元素 3、empty队列是否为空 4、push插入元素到队尾(并排序) 5、size返回队列内元素的个数 6、emplace原地构造一个元素并插入队列 7、swap内容交换
-
-
不同处:
-
”披着队列外衣“的堆,添加了内部排序
-
优先队列(priority_queue)定义:
priority_queue<Type,Container,Functional
Type是数据类型,Container是容器类型(Container必须是用数组实现的容器,比如vector,deque等等,但不能用list。默认的类型是vector),Functional就是比较方式,默认是大顶堆
代码:
//升序队列
priority_queue<int,vector<int>,greater<int>>q;
//降序队列
priority_queue<int,vector<int>,less<int>>q;
//greater和less是std的两个仿函数(就是使用一个类看上去是一个函数。其实就是在类中实现了一个operator(),这个类就有了类似函数的行为,