题目:
http://cxsjsxmooc.openjudge.cn/2021t3springall2/040/
分析:
list的应用,可参考老师上课课件里面的示例。
有几个点是:list<int>::iterator 前面要加typename,视频里也讲了这个问题。
参考代码:
#include<iostream>
#include<list>
#include<string>
using namespace std;
void printList(typename list<int>::iterator p,typename list<int>::iterator q){
while(p != q){
cout << *p << " ";
p++;
}
cout <<endl;
}
int main(){
int n;
cin >> n;
int len = n < 10000 ? n:10000;
list<int> L[len];//这跟int L[len]大小相差不大,因为初始化时里面都没有内容。
string order;
int id1,id2,num;
while(n--){
cin >> order >> id1;
if(order == "new"){
}
else if(order == "add"){
cin >> num;
L[id1].push_back(num);
}
else if(order == "merge"){
cin >> id2;
L[id1].merge(L[id2]);
}
else if(order == "unique"){
L[id1].sort();
L[id1].unique();
}
else if(order == "out"){
L[id1].sort();
printList(L[id1].begin(),L[id1].end());
}
}
return 0;
}
注:以上代码虽然通过了OpenJudge的样例测试,但受限于本人水平,如有疏漏,恳请斧正。