#include<bits/stdc++.h>
using namespace std;
//猫狗收容所
struct animal{
int time;
int sequence;
animal(int t, int s):time(t),sequence(s){}
};
int main(){
int n,m,t;
int counter = 0;
cin>>n;
queue<animal> dog;
queue<animal> cat;
while(n--){
cin>>m>>t;
if(m==1){
if(t>0){
dog.push(animal(counter++,t));
}
else if(t<0){
cat.push(animal(counter++,t));
}
}
else if(m==2){
if(t==0){
if(dog.empty() && !cat.empty()){
cout<<cat.front().sequence<<",";
cat.pop();
}
else if(!dog.empty() && cat.empty()){
cout<<dog.front().sequence<<",";
dog.pop();
}
else if(!dog.empty() && !cat.empty()){
if(dog.front().time < cat.front().time){
cout<<dog.front().sequence<<",";
dog.pop();
}
else{
cout<<cat.front().sequence<<",";
cat.pop();
}
}
}
else if(t==1 && !dog.empty()){
cout<<dog.front().sequence<<",";
dog.pop();
}
else if(t==-1 && !cat.empty()){
cout<<cat.front().sequence<<",";
cat.pop();
}
}
}
return 0;
}
**
1.实例化一个结构体的模板:
animal(int t, int s):time(t),sequence(s){}
2. 涉及到出队问题,就必须要想到判空操作
else if(t==-1 && !cat.empty()){}
**