优先队列的定义:priority_queue<Type, Container, Functional>
注意:当两个或两个以上的尖括号连在一起时中间要加上空格分开不然会认成左移或者右移出现报错
//升序队列
priority_queue <int,vector<int>,greater<int> > q;
//降序队列
priority_queue <int,vector<int>,less<int> > q;
//这里面的升序和降序分别是这样的
int a=1;
int b=2;
int c=3;
priority_queue <int,vector<int>,greater<int> > q;
q.push(b);
q.push(c);
q.push(a);
//这样定义是升序,输出的结果就是
//1 2 3
//相反 less就是
//3 2 1
priority_queue <int> q;
//如果这样定义
//就默认是
priority_queue <int,vector<int>,less<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> >,less<pair<int,int> > > q;
pair可以同时定义两个类型相同或不同的元素
pair<数据类型,数据类型>PII;
PII a(1,2);
//a.first就是1
//a.second就是2