优先级队列queue
头文件
#include<queue>
首先是基本的用法
- 定义一个普通队列(先进先出)
queue q;
然后是一些基本的用法:
a=q.top();
a=q.front();//两个都是取队首元素
a=q.back();//返回对尾元素
q.push(a);//将a入队
q.pop();//将队首元素弹出(不返回队首元素是啥)
a=q.size();//返回队列元素个数
q.empty();//判断是否为空,若空则返回true,否则false;
然后说一下如何清空队列:
queue头文件貌似没有q.clear();函数
- 直接将一个空队列赋值给原队列
q=queue<int>();
- 一直pop;
while(!q.empty()) q.pop();
- 自己定义一个清空函数;
void clear(queue<int>& q)
{
queue<int> empty;
swap(empty,q);}
先省略
- 优先级队列:
- 首先是降序的(大的在队首):
priority_queue<int> q
;
相当于:
priority_queue<int,vector<int>,less<int>>q;
- 然后是升序
priority_queue<int,vector<int>,greater<int>>q;