链表
用迭代器模拟光标的位置
#include<bits/stdc++.h>
using namespace std;
char s[1000020];
list<char>l;
list<char>::iterator it;
int main()
{
int T;
scanf("%d",&T);
for(int kase=1;kase<=T;kase++)
{
scanf("%s",s);
l.clear();
it=l.end();
int len=strlen(s);
for(int i=0;i<len;i++)
{
if(s[i]=='-')
{
if(it!=l.begin())
it=l.erase(--it);
}
else if(s[i]=='<')
{
if(it!=l.begin())
it--;
}
else if(s[i]=='>')
{
if(it!=l.end())
it++;
}
else
l.insert(it,s[i]);
}
printf("Case %d: ",kase);
for(it=l.begin();it!=l.end();it++)
printf("%c",*it);
printf("\n");
}
return 0;
}