c++ - 在 vector 中插入一些值?

标签 c++ vector

<分区>

我用 C++ 编写了一段代码,并使用 vector.insert() 和迭代器在 vector 中插入值。但我收到一个错误:

Vector iterator not incremental

我无法弄清楚这段代码有什么问题。我的猜测是++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;
}

最佳答案

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

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

Demo.

您的程序打印 45 23 0 0 0 0。尾随零来自四个值 vector 的初始设置。

关于c++ - 在 vector 中插入一些值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39321981/

相关文章:

C++:free():下一个大小无效(快速)

C++ - typeid(),用于派生类不返回正确的类型

c++ - 为什么以下函数不使用 Clang 生成尾递归?

c++ - 从两个 vector 创建 map

vector - iOS 高级手势 : Getting Swipe Direction Vector

c++ - vector::size() 的性能:它和读取变量一样快吗?

c++ - 创建进程 : redirect child stdout to parent stdout in C++/Windows

c++ - 在保留顺序的同时从 Vector 中删除元素 - 需要更好的方法

c++ - 将指针传递给 vector 的第一个元素(如果有)

c++ - std::string header 仅在 Visual Studio 中吗?