基本定义
STL中定义优先队列的模板类为priority_queue,其定义如下:template <class T, class Container = vector<T>, class Compare = less<typename Container::value_type> > class priority_queue;
模板里面有三个参数,第一个为元素的类型,第二个为所使用的容器(vector或deque),第三个
为一个比较的规则,决定是最大优先队列还是最小优先队列,默认的less为最大优先队列,实现方
式是最大堆,greater为最小优先队列,实现方式是最小堆,结构都是二叉树。
priority_queue支持的方法和一般队列支持的方法大体相同。
使用方法
使用模板类priority_queue时要加上头文件<queue>,下面给出针对不同数据类型的使用方法。
基本数据类型
对于 int ,string 等常规数据类型的声明如下。
最大优先队列:priority_queue<int> MaxHeap;
或:priority_queue<int,vector<int>, less<int> > MaxHeap
最小优先队列:priority_queu