在向量中插入一些值?

时间:2016-09-04 22:18:57

标签: c++ vector

我用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;
}

1 个答案:

答案 0 :(得分:0)

你非常接近。您的错误是插入使迭代器无效,因此您需要重新分配它:

it = vec2.insert(it, 45);
++it;                      
it = vec2.insert (it,23);

Demo.

你的程序打印45 23 0 0 0 0.尾随零来自初始设置四个值的向量。