使用 string::interator 删除string中重复字符问题:
string::iterator ita, itb;
for (ita = key.begin(); ita != key.end();ita++ ) {
for (itb = ita+1; itb != key.end(); itb++)
if (*itb == *ita) itb = key.erase(itb);
else itb++;
}
上述代码将出现string iterator not incrementable!
更正代码改为如下:
for (ita = key.begin(); ita != key.end(); ) {
for (itb = ita+1; itb != key.end(); /*itb++*/)
if (*itb == *ita) itb = key.erase(itb);
else itb++;
if (ita != key.end()) ++ita;
}
原因参考:http://blog.csdn.net/hsujouchen/article/details/8987233