小编Tur*_*ism的帖子

在C++向量中访问元素大小

今天我在VS2012和Max OS 10.7中尝试这样的东西

    vector<int> vec;
    vector<int> vec2;
    for(int i = 0;i < 100 ;i++){
        vec.push_back(i);
    }

    cout << "size: " << vec.size() << endl;
    cout << "capacity: " << vec.capacity() << endl;
    cout << vec[127] << endl;
    //vec2.reserve(10);
    fill_n(vec.begin(),128,-1);
    cout << vec[127] << endl;
    return 0;
Run Code Online (Sandbox Code Playgroud)

因为我们知道vector的大小是容器中元素的实际数量,上面的代码可能会导致VS2012中的运行时错误,但它在Max OS上运行正常,我在Ideone.com中尝试并且运行成功,我是不确定大小和容量的定义是否有问题,为什么我可以访问元素超出规模?

PS:我的电脑在这种情况下的容量在VS2012上是141,在Mac OS和Ideone.com上是128

c++ size vector capacity

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

标签 统计

c++ ×1

capacity ×1

size ×1

vector ×1