2010-06-06 80 views

回答

5

是的,但抹去回报你可以用它来继续在一个循环的有效迭代:

对于其余委员, 函数返回成员的迭代 键入string :: iterator指向 字符,该字符现在占用第一个字符 的 位置,或者如果不存在此类字符 ,则返回end()。

来源:http://www.cplusplus.com/reference/string/string/erase/

1

是的,标准说

参考文献,指针和迭代器指的是basic_string序列的元素可以由basic_string对象的以下用途被无效 :

  • 调用非const成员函数,但除外,at(),begin(),rbegin(),end()rend()
1

http://www.sgi.com/tech/stl/basic_string.html

迭代器可通过交换, 储备,插入被无效,和擦除(和由 功能等效于 插入件和/或擦除,如清除, 调整大小,追加和替换)。 但是,第一个调用 的任何非const成员函数 (包括非const版本 begin()或运算符[])可能会使迭代器失效 。

1

从我的理解,是的。 擦除和插入操作使迭代器失效。

但擦除(迭代器)也返回您可能能够使用的迭代器。