Tur*_*ism 2 c++ size vector capacity
今天我在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