我正在从http://www.cplusplus.com/reference/vector/vector/insert/了解std::vector::insert
代码的相关部分:
int main ()
{
std::vector<int> myvector (3,100);
std::vector<int>::iterator it;
it = myvector.begin();
it = myvector.insert ( it , 200 );
myvector.insert (it,2,300);
// "it" no longer valid, get a new one:
it = myvector.begin();
为什么在.insert
操作后迭代器无效?
答案 0 :(得分:3)
来自this reference它说:
如果新size()大于旧容量(),则会导致重新分配。如果new size()大于capacity(),则所有迭代器和引用都将失效。否则,只有插入点之前的迭代器和引用仍然有效。过去的迭代器也会失效。