读书人

为什么这两个得到的结果完全不一样

发布时间: 2012-03-28 15:40:03 作者: rapoo

求助,为什么这两个得到的结果完全不一样

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

读书人网 >C++

热点推荐