vector<int> v = { 1,2,3,4,5 };
for (auto beg = v.begin(); beg != v.end();++beg)
{
if (beg == v.begin())
v.push_back(50);
}
Run Code Online (Sandbox Code Playgroud)
在运行时,它说:"矢量迭代器不可递增".
请参见std :: vector :: push_back.
如果new size()大于capacity(),那么所有迭代器和引用(包括过去的迭代器)都将失效.否则只有过去的结束迭代器无效.
在您的示例中,beg
是一个迭代器.它被push_back无效,你不能再使用了它.
归档时间: |
|
查看次数: |
154 次 |
最近记录: |