STL之优先队列
写在前面
先做一个超级简单的新手帖,教教大家怎么正确的使用STL里面的优先队列priority_queue.
简介
priority_queue是STL里面事先已经实现好的堆排序,构成了一个可以直接输出最大值或者最小值,查询时间只需要O(logn)的调用函数,它的基本语句如下
priority_queue
,less > q; //<需要存储的类型,不定长数组,是小顶堆还是大顶堆> q:优先队列的名字
(PS: less是从大到小输出,greater是从小到大输出,最后两项可以不写,默认是大顶堆,也就是less)
q.empty()//查询队列是否有元素,有就返回true,否则false
q.push(a)//让a入队
q.pop()//让队头元素出队
q.top()//查询现在队头的元素
简单应用
头文件
|
|
队列声明
|
|
队列操作
|
|
写在最后
当然强大的STL里面除了优先队列还有普通队列,还有栈,还有pair,map之类的,在后续的题目里面,更多更好的操作就是把它们联合起来一起用,这也会在我之后的blog里写到~