[STL]优先队列priority_queue
有关 priority_queue 的使用手册:
调用库
#include <queue>
priority_queue 默认 为 大根堆
大根堆 用法 priority_queue <int , vector<int> , less <int> > que;
小根堆 用法 priority_queue <int , vector<int> , greater <int> > que;
pair类型(二元组)辅助
特别提及dijkstra求最短路径中用法
在dijkstra优先队列优化中,
需要将dis[]的值入队选取最小的dis[]进行接下来的松弛
问题是:找到最小dis[]后需要选取其对应的点
为解决此问题,引入 pair类型 辅助 priority_que
pair类型使用调用库include <iostream>
用法如下
a = make_pair(1 , 2);
//则 a.first == 1 , a.second == 2;
特别的,对于 使用pair辅助 的 prority_queue 写法
priority_queue < int , vector< <pair<int , int> > , greater <pair<int , int> > > que;
//大根堆同理
PS:
对于priority_queue声明时会用到大量 < > 符号
不要连在一起而写成 << 或 >> 而被计算机判断为二进制运算符

浙公网安备 33010602011771号