B3616 【模板】队列 题解
这道题想让我们实现一个 队列 操作,先简单介绍一下队列
队列是一种 先进先出(First In First Out) 的 线性表 ,是 数据结构 中的一种,允许插入的一端称为 队尾 ,允许删除的一端称为 队头
我们可以借助
S
T
L
STL
STL (
q
u
e
u
e
queue
queue )中的队列来帮助我们实现,先介绍几种用法,知道这几种也就够了:
- 取首队列第一个元素 ----
f
r
o
n
t
(
)
front()
front()
- 弹出队列第一个元素 ----
p
o
p
(
)
pop()
pop()
-
求出队列有多少元素 ---- s i z e ( ) size() size()
-
朝队尾插入一个元素 ---- p u s h ( ) push() push()
-
queue声明的基本结构是这样的: q u e u e queue queue <数据结构> 队列名;
-
q u e u e queue queue 中包含的头文件:# i n c l u d e include include< q u e u e queue queue>
S T L STL STL 中的用法基本也就是这样,下面是代码:
#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.