vector<int> ivec1(3);
vector<int>::iterator iter=ivec1.begin();
int tmp;
while(cin>>tmp)
{
ivec1.insert(iter,tmp);
//iter=ivec1.end();
++iter;
}
这样为什么不行?插值除了第一个以外,其余的老是往前插值?比如输入 1,2,3
得到结果为 196613 524584 1 0 0 0
相关的问题有2:
1.从实验结果来看,不明白 第一个1插入好歹还是1,后面的2和3就变了;
2.从后面还是3个0来看,插入应该是往前插而不是往后插;这么来看我的iter++并没有改变其值,依旧为begin;很是困惑。
迭代器中插入内容后腰重新获取
因为STL不同的容器对于迭代的实现是有差别的
具体原因你可以直接在VS下Debug进去,STL源代码是和VS一起安装的
大哥 首先谢谢您! 看到您说的要重新获取 突然知道大概是怎么回事了
但是大哥 回答问题的时候能不能顾及一下 向小弟这样新手的感受~ 后面完全不知所云啊 谢谢!
注意迭代器的失效哦