看下面的简单代码:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string s("1234567890");
string::iterator i1 = s.begin();
string::iterator i2 = s.begin();
string s1, s2;
s1.append(i1, ++i1);
s2.append(++i2, s.end());
cout << s1 << endl;
cout << s2 << endl;
}
你期望输出是什么?
你会像我一样期望它是:
1
234567890
错误的!它是:
234567890
即第一个字符串为空。
前缀增量运算符的接缝对迭代器有问题。还是我错过了什么?