首页 > 解决方案 > 不期望向量的 C++ 输出元素

问题描述

我正在练习矢量和范围 for 循环,我的代码:

#include <iostream>
#include <vector>
using namespace std;

int main(){
    int size,element;
    cout<<"enter vector size: ";
    cin>>size;
    vector<int>v(size);
    for(int i=0; i<size; i++){
        cout<<i<<"\t";
        cin>>element;
        v.push_back(element);
    }
    for(int p : v) cout<<p<<" ";
}

我输入了 3,然后输入了 1、2、3,但输出为“0 0 0 1 2 3”。你能解释一下 0 是从哪里来的吗?非常感谢你!

标签: c++ranged-loops

解决方案


vector<int>v(size);创建一个size零初始化元素的向量(在您的情况下为 3)。 push_back然后将新元素添加到此向量的末尾,这解释了您得到的结果。

您可以使用 为向量中的元素保留空间reserve。如果您事先知道要添加多少元素,这会加快速度。


推荐阅读