1. queue类:
#include <iostream>
#include <cstring>
#include <queue>
using namespace std;
int main()
{
//普通队列queue
queue<int> Q;
//入队
for(int i=1;i<=10;i++) //将数字1~10放入队内
Q.push(i);
//出队
for(int i=1;i<=3;i++) //将队首元素出队三次
Q.pop();
cout<<"front:"<<Q.front()<<endl; //输出当前队首元素
cout<<"back:"<<Q.back()<<endl; //输出队尾元素
//empty() 检测元素是否为空
if(Q.empty()==true)
cout<<"empty"<<endl;
else
cout<<"not empty"<<endl;
//size() 返回队内元素个数
cout<<"size:"<<Q.size()<<endl;
return 0;
}
2. prioty_queue类
#include <iostream>
#include <cstring>
#include <queue>
using namespace std;
int main()
{
//优先队列priority_queue,底层用堆实现,队首元素是优先级最高的,默认数越大优先级越高
priority_queue<int> Q;
//入队
Q.push(3);
Q.push(4);
Q.push(1);
Q.push(8);
Q.push(6);
//top() 获得队首元素(优先级最高的),另外此类型没有front()和back()函数
cout<<"top:"<<Q.top()<<endl;
//出队(出最高优先级的)
Q.pop();
cout<<"top:"<<Q.top()<<endl;
//empty() 检查队列是否为空
if(Q.empty()==true)
cout<<"Q is empty."<<endl;
else
cout<<"Q is not empty."<<endl;
//size() 获取队内元素数量
cout<<"size:"<<Q.size()<<endl;
//设置为让数字小的优先级更大
priority_queue<int,vector<int>,greater<int> > q; //greater<int>表数字越小优先级越大,less<int>表数字越大优先级越大
q.push(3);
q.push(4);
q.push(1);
cout<<"top:"<<q.top()<<endl;
return 0;
}