我用C ++编写了一段代码,我使用了vector.insert()和迭代器在vector中插入值。但是我收到了一个错误:
矢量迭代器不是增量
我无法弄清楚这段代码有什么问题。我的猜测是++it
,但我无法解决问题。
我将不胜感激任何帮助。
#include <iostream>
#include <vector>
using namespace std;
int main(){
vector<int>::iterator it;
vector<int> vec2(4);
it = vec2.begin();
vec2.insert(it, 45);
++it; // error pops here
vec2.insert (it,23);
for(it = vec2.begin(); it!= vec2.end(); ++it)
cout << " "<<*it<<endl;
return 0;
}
答案 0 :(得分:0)
你非常接近。您的错误是插入使迭代器无效,因此您需要重新分配它:
it = vec2.insert(it, 45);
++it;
it = vec2.insert (it,23);
你的程序打印45 23 0 0 0 0.尾随零来自初始设置四个值的向量。