输入:数量n n行指令 包括
insert x
delete x
deleteFirst
deleteLast
输出:结果链表
Sample Input 1
7
insert 5
insert 2
insert 3
insert 1
delete 3
insert 6
delete 5
Sample Output 1
6 1 2
Sample Input 2
9
insert 5
insert 2
insert 3
insert 1
delete 3
insert 6
delete 5
deleteFirst
deleteLast
Sample Output 2
1
#include <cstdio>
#include <list>
#include <iostream>
using namespace std;
int main(){
int n,num;
string s;
list<int> A;
cin>>n;
for(int i = 1 ;i <= n ; i++){
cin>>s;
if(s[0]=='i') {
cin>>num;
A.push_front(num);
}
else if(s[6]=='F') A.pop_front();
else if(s[6]=='L') A.pop_back();
else if(s[0]=='d'){
cin>>num;
for(list<int>::iterator it=A.begin();it!=A.end();it++){
if(*it==num) {
A.erase(it);
break;
}
}
}
}
int i =0;
for(list<int>::iterator it=A.begin();it!=A.end();it++){
if(i++) cout<<" ";
cout<<*it;
}
cout<<endl;
return 0;
}
错点:
1.list的迭代器不能写it<A.end() 也没有A.end()-1的写法
2.list的迭代器只能++或--,不能其他任何操作,因为不能实现随机访问容器任意元素。it+=1 it=it+1 类似都不可以