C++STL之Queue容器 - 数据结构教程 - C语言网 (dotcpp.com)https://www.dotcpp.com/course/114
// STL QUEUE 操作
#include<iostream>
#include<queue>
#include<vector>
using namespace std;
void debug_input(const int& N, vector<vector<int>>& input){
int num = input.size();
if(num != N){
cout<<"somthing wrong about the input"<<endl;
}
for(int i=0; i<N; i++){
for(auto it=input[i].begin(); it!=input[i].end(); it++){
cout<<*it<<", ";
}
cout<<endl;
}
}
void operate_queue(const int& N, const vector<vector<int>>& input, queue<int>& myqueue){
for(int i=0; i<N; i++){
// 入队
if(input[i][0] == 1){
myqueue.push(input[i][1]);
}
// 出队输出
else if(input[i][0] == 2){
//首先判断是否空队
if( !myqueue.empty() ){
cout<<myqueue.front()<<endl;
myqueue.pop();
}
else{
cout<<"no";
return;
}
}
// 计算队中元素个数并输出
else{ //input[i][0] == 3
cout<<myqueue.size()<<endl;
}
}
}
int main()
{
// input
vector<vector<int>> input;
int in;
int N;
cin>>N;
while(cin>>in){
if(in==1){
vector<int> tmp(1,1);
cin>>in;
tmp.push_back(in);
input.push_back(tmp);
}
else if(in==2){
vector<int> tmp(1,2);
input.push_back(tmp);
}
else if(in==3){
vector<int> tmp(1,3);
input.push_back(tmp);
}
}
// debug_input(N,input);
queue<int> myqueue;
operate_queue(N, input, myqueue);
return 0;
}