[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声明时会用到大量 < > 符号

不要连在一起而写成 <<>> 而被计算机判断为二进制运算符

posted @ 2022-04-11 22:25  skyliyu  阅读(24)  评论(0编辑  收藏  举报