求助,为什么这两个得到的结果完全不一样
- C/C++ code
list<char> LC;list<char>::iterator It;int Length;char Str[LIM];cin>>Str;LC.clear();It=LC.begin(); // 差别就在这Length=strlen(Str);for(int i=0;i<Length;++i){ if( Str[i] == '[' ){ It=LC.begin(); } else if( Str[i] == ']'){ It=LC.end(); } else{ LC.insert(It,Str[i]); }}PRINT();
- C/C++ code
list<char> LC;list<char>::iterator It;int Length;char Str[LIM];cin>>Str;LC.clear();It=LC.end(); // 差别就在这Length=strlen(Str);for(int i=0;i<Length;++i){ if( Str[i] == '[' ){ It=LC.begin(); } else if( Str[i] == ']'){ It=LC.end(); } else{ LC.insert(It,Str[i]); }}PRINT();
print函数就没贴上来了,就是遍历输出
这个唯一差别就是开始初始化的时候It=LC.end();与It=LC.begin();
但是如果输入abcd[std]efg
反正就是有[]就会有很奇怪的不一样
ps:前一个是对的是我想要实现的
还有插入之后,那个迭代器貌似很奇怪,跟vector完全不一样
[解决办法]
至于你的程序没有什么问题啊!!
比如:你输入abcd[std]efg
1,2的结果:stdabcdefg