2010-06-06 84 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

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

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