priority_queue<Type, Container, Functional>
Type 就是数据类型,Container 就是容器类型(Container必须是用数组实现的容器,比如vector,deque等等,但不能用 list。STL里面默认用的是vector),Functional 就是比较的方式。参考链接。
priority_queue最常见的使用方式就是使用单一的数据类型如 int 等,即
//小顶堆
priority_queue <int,vector<int>,greater<int> > q;
priority_queue <int, vector<int>, greater<> > q;
//大顶堆
priority_queue <int, vector<int>, less<int> >q;
priority_queue <int, vector<int>, less< > >q;
priority_queue <int, vector<int>> q;
priority_queue <int> q;
当使用pair对的数据类时,先对第一个参数进行比较,相等时再比较第二个参数
//小顶堆
priority_queue <pair<int,int>,vector<pair<int,int>>,greater<pair<int,int>> > q;
priority_queue <pair<int,int>,vector<pair<int,int>>,greater< > > q;
//大顶堆
priority_queue <pair<int,int>,vector<pair<int,int>>,less<pair<int,int>> > q;
priority_queue <pair<int,int>,vector<pair<int,int>>,less< > > q;
priority_queue <pair<int,int>,vector<pair<int,int>> > q;
priority_queue <pair<int,int>> q;