存储整形
1 priority_queue<数据类型>q //定义 2 如 priority_queue<int>q1 priority_queue<long long>q2 3 // 队列在排序时复杂度为logn 4 q.push(x) //将数 x 压入队列 5 q.top() //返回队首 6 q.pop() //弹出队首 7 q.empty() //判断队列是否为空,若为空,返回1,若不为空,返回0 8 q.size() //返回元素数量 9 // 优先队列在未改动时以大根堆排列,也就是以单调递减的顺序 10 //若想以单调递增的顺序,建议压入负值 11 q.push(-x)
存储结构体
1 struct node 2 { 3 } 4 priority_queue<node>q //定义 5 struct node 6 { 7 int id,num; 8 friend bool operator < (node a,node b) 9 { 10 return a.num>b.num; //以num为关键字,递增 11 } 12 }; 13 struct node 14 { 15 int id,num; 16 friend bool operator < (node a,node b) 17 { 18 return a.num<b.num; //以num为关键字,递减 19 } 20 }; 21 //操作与整形相同