- 优先队列
参考链接:www.cnblogs.com/huashanqing…
头文件:queue
基本操作:
- top 访问队头元素
- empty 队列是否为空
- size 返回队列内元素个数
- push 插入元素到队尾 (并排序)
- emplace 原地构造一个元素并插入队列
- pop 弹出队头元素
- swap 交换内容
初始化
priority_queue的定义:priority_queue<Type, Container, Functional>
其中Type是数据类型,Container 就是容器类型,Functional 就是比较的方式。
priority_queue默认是采用vector做容器,默认最大值堆。
最小值堆:priority_queue <int,vector,greater > q;
最大值堆:priority_queue <int,vector,less >q;
自定义类型:在类内重载<运算符,比较需要的参数,其中返回<表示最大值优先,返回>表示最小值优先。例如:
bool operator<(const tmp1& a) const
{
return x < a.x; //最大值堆
}