小编fet*_*tis的帖子

CAN 访问 0 长度向量的元素。为什么?

我不明白为什么下面的 C++ 代码可以工作。在此程序中,用户指定数组的大小和数组本身,然后程序打印数组的长度及其元素。我用来reserve()为数组元素分配内存,据我所知,我必须用来push_back()将元素添加到向量中,但我不这样做,虽然它总是打印length 0,但它访问向量元素没有任何问题并正确打印它们。为什么会这样呢?

#include <iostream>
#include <vector>

using namespace std;

int main(){
    unsigned size;
    cin >> size;
    
    vector<unsigned long> nums;
    nums.reserve(size);
    for(unsigned i{0}; i < size; ++i) cin >> nums[i];
    
    cout << "length " << nums.size() << '\n';
    
    for(unsigned i{0}; i < size; ++i) cout << i << ' ' << nums[i] << endl;
    
    return 0;
}
Run Code Online (Sandbox Code Playgroud)
例子
输入
#include <iostream>
#include <vector>

using namespace std;

int main(){
    unsigned size;
    cin …
Run Code Online (Sandbox Code Playgroud)

c++ memory vector

1
推荐指数
1
解决办法
95
查看次数

标签 统计

c++ ×1

memory ×1

vector ×1