迭代器在以下情况下失效:
string b "Some string";
auto beg_ = b.begin();
auto end_ = b.end();
b.erase(beg_);
Run Code Online (Sandbox Code Playgroud)
是的,但擦除返回一个有效的迭代器,你可以用它继续循环:
对于其余成员,该函数返回一个成员类型为字符串:: iterator的迭代器,该迭代器引用现在占据第一个字符擦除位置的字符,或者,如果不存在这样的字符,则返回end().
资料来源:http://www.cplusplus.com/reference/string/string/erase/