C++中的string类提供了resize()方法来改变字符串的大小。当调用resize()方法改变字符串的大小后,原来的迭代器可能会失效。因此,在调用resize()方法之后,需要重新获取新的迭代器来访问字符串中的元素。
例如:
#include <iostream>
#include <string>
int main() {
std::string str = "hello";
std::string::iterator it = str.begin();
str.resize(3);
// 迭代器失效了,无法继续使用
// std::cout << *it << std::endl;
// 重新获取新的迭代器
it = str.begin();
std::cout << *it << std::endl;
return 0;
}
在上面的例子中,调用resize()方法改变了字符串的大小,导致迭代器失效。因此,需要重新获取新的迭代器来访问字符串中的元素。