在做这题时 用cin cout的话 耗时5秒以上。
换成scanf和printf时 耗时立马降到4以下。。
好像cin cout 有个什么同步开关 关掉后 速度就会提升 见后面
#include <iostream>
#include <list>
#include <string>
#include <cstdio>
#include <cstdlib>
#include <cstring>
using namespace std;
class mylist
{
public:
list<int> lst;
};
int main()
{
char cmd[10];
int n,tem;
mylist lst[10001];
// freopen("in.txt","r",stdin);
// freopen("out.txt","w",stdout);
scanf("%d",&n);
while(n--)
{
scanf("%s",cmd);
if(strcmp(cmd,"new") == 0)
{
scanf("%d",&tem);
}
else if(strcmp(cmd,"add") == 0)
{
int id,num;
scanf("%d%d",&id,&num);
lst[id].lst.push_back(num);
lst[id].lst.sort();
}
else if(strcmp(cmd,"merge") == 0)
{
int id1,id2;
scanf("%d%d",&id1,&id2);
lst[id1].lst.merge(lst[id2].lst);
}
else if(strcmp(cmd,"unique") == 0)
{
int id;
scanf("%d",&id);
lst[id].lst.unique();
}
else if(strcmp(cmd,"out") == 0)
{
int id;
scanf("%d",&id);
list<int>::iterator i;
for(i = lst[id].lst.begin(); i != lst[id].lst.end(); ++i)
cout<<*i<<" ";
//printf("%d ",*i);
printf("\n");
}
}
return 0;
}
好吧 原来list可以直接定义一个数组的 我想多了
#include <iostream>
#include <list>
#include <string>
#include <cstdio>
#include <cstdlib>
#include <cstring>
using namespace std;
std::ios::sync_with_stdio(false);
//class mylist
//{
//public:
// list<