优先队列priority_queue

描述

参考文章
使用priority_queue需要包含的头文件是#include,不同于queue的先进先出,priority_queue可以自定义数据的优先级,让优先级高的数据位于队首。
定义:

priority_queue<Type, Container, Functional>
//less与greater属于仿函数使用时需要包含头文件#include<functional>
priority_queue<Type, std::vector<Type>, std::less<Type>>//降序排列,最大值位于队首,所以是大顶堆。
priority_queue<Type, std::vector<Type>, std::greater<Type>>//升序排列,最小值位于队首,所以是小根堆。

其中Type 就是数据类型,Container 就是容器类型(Container必须是用数组实现的容器,比如vector,deque等等,但不能用 list。STL里面默认用的是vector),Functional 就是比较的方式,当需要用自定义的数据类型时才需要传入这三个参数,使用基本数据类型时,只需要传入数据类型,默认是大顶堆。

Q.E.D.