B3616 【模板】队列 题解
这道题想让我们实现一个 队列 操作,先简单介绍一下队列
队列是一种 先进先出(First In First Out) 的 线性表 ,是 数据结构 中的一种,允许插入的一端称为 队尾 ,允许删除的一端称为 队头
我们可以借助 STLSTLSTL ( queuequeuequeue )中的队列来帮助我们实现,先介绍几种用法,知道这几种也就够了:
- 取首队列第一个元素 ---- front()front()front()
- 弹出队列第一个元素 ---- pop()pop()pop()
-
求出队列有多少元素 ---- size()size()size()
-
朝队尾插入一个元素 ---- push()push()push()
-
queue声明的基本结构是这样的: queuequeuequeue <数据结构> 队列名;
-
queuequeuequeue 中包含的头文件:#includeincludeinclude<queuequeuequeue>
STLSTLSTL 中的用法基本也就是这样,下面是代码:
#include<iostream>
#include<queue>
using namespace std;
int x,op,n;
queue<int> q;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>op;
if(op==1){
cin>>x;
q.push(x);//从队列里放入一个元素
}
if(op==2){
if(!q.empty()) q.pop();//如果队列不是空的,则将队首元素弹出
else cout<<"ERR_CANNOT_POP"<<endl;
}
if(op==3){
if(!q.empty()){
cout<<q.front()<<endl;//如果队列不是空的,则将队首元素输出
}
else{
cout<<"ERR_CANNOT_QUERY"<<endl;
}
}
if(op==4){
cout<<q.size()<<endl;//输出此时队列中的元素个数
}
}
return 0;
}
The End.