当我将大小初始化为5且仅给出5个元素时,为什么向量的大小增加至10?

问题描述 投票:0回答:2

所以我在向量上做这个问题,我必须接受输入然后反转所有元素

int main() {

    int i,n,a;   
    cin >> n;

    vector<int> arr(n);
    for(i=0;i<n;i++){
        cin >> a;
        arr.push_back(a);
    } 
    sort(arr.begin(),arr.end());
    for(i=0;i<n;i++){
        cout << arr[i] << " ";
    }
    return 0;
}

我写了这段代码,在这里我提到的大小是向量的n个,其中只推了n个元素。但是对于5个元素,输出结果为0 0 0 0 0。我猜这是因为向量已将其容量扩展到10,因此打印了最后5个明显为0的元素。为什么会发生这种情况?

c++ vector stl
2个回答
2
投票

vector<int> arr(n);从头开始创建一个大小为n的向量,所有元素都初始化为int{},也称为零。然后循环通过n添加push_back个其他元素。


0
投票

vector<int> arr(n);

© www.soinside.com 2019 - 2024. All rights reserved.