为什么我不能在C ++中输入我的std :: vector

时间:2019-04-15 04:50:40

标签: c++ vector

我是C ++的新手。我刚刚了解了STL中的向量。

但是,当我尝试向向量中输入整数时:

vector<int> v;
cin>>v[i]

程序返回分段错误。请帮帮我。

1 个答案:

答案 0 :(得分:3)

您的向量中没有任何元素,因此内部数组为null。当您尝试向其中读取某些内容时,您试图引用空指针(导致段错误)。首先向向量添加元素:

vector<int> v(100); //Create vector with 100 elements

for(int i = 0; i < 100; i++) {
    cin >> v[i]; 
}

或者,您可以将元素读入局部变量,然后将其添加到向量中:

vector<int> v; 
for(int i = 0; i < 100; i++) {
    int new_val;
    cin >> new_val;
    v.push_back(new_val); 
}