鉴于我们经常使用c++STL所以我们就用vector来模拟队列的基本操作首先对于这道题我们先说说他的思路,先输入操作次数,每次操作时我分添加或出队,当我们第一个键值输入1时就是添加之后再输入添加的值完成添加操作,之后就是出队,当输入0的时候我们直接将vector的第一个元素先出队再删除具体操作如下。如果出队的时候,当前队列没有,就将-1当作出队元素,视为无效出队。
int x;cin>>x;
while(x--)
{
int x,y;cin>>x;
if(x==1)
{
cin>>y;
a.push_back(y);
}
else
{
if(a.empty())b.push_back(-1);
else {
b.push_back(a[0]);
a.erase(a.begin());
}
}
}
具体代码如下:
#include<bits/stdc++.h>
using namespace std;
int main()
{
vector<int>a;
vector<int>b;
int x;cin>>x;
while(x--)
{
int x,y;cin>>x;
if(x==1)
{
cin>>y;
a.push_back(y);
}
else
{
if(a.empty())b.push_back(-1);
else {
b.push_back(a[0]);
a.erase(a.begin());
}
}
}
for(int i=0;i<b.size();i++)
{
if(b[i]==-1)cout<<"invalid"<<endl;
else cout<<b[i]<<endl;
}
}