转载自点击打开链接
vector v;此时没有初始化,所以size()和capacity()都是0;
cout<<v.size()<<endl<<v.capacity()<<endl;
v.push_back(1);
cout<<v.size()<<endl<<v.capacity()<<endl;//此时容器内有一个元素了,那么size()和capacity()都是1
v.push_back(1);
cout<<v.size()<<endl<<v.capacity()<<endl;//此时容器内能够提供的空间capacity()不够用了,需要申请内容,申请多少呢,申请后的大小应该是以前的2倍,那就应该是2了,此时有两个元素,size()为2,capacity()也是2
v.push_back(1);
cout<<v.size()<<endl<<v.capacity()<<endl;//此时容器能够提供的空间是2,又增加元素,不够,需要申请空间,申请后的空间为原来2倍,就是4了,那么size()为3,capacity()为4
v.push_back(1);
cout<<v.size()<<endl<<v.capacity()<<endl;//容器还能够提供一个空间,不需要申请新空间,size()为4,capacity()为4
v.push_back(1);
cout<<v.size()<<endl<<v.capacity()<<endl;//空间不够,需要申请,size()为5,capacity为8
Vector容量与大小解析
本文通过实例详细介绍了C++ STL中vector容器的size()与capacity()的区别。size()表示当前元素数量,capacity()表示预留的空间大小。随着元素的增加,capacity会按需成倍增长。
714

被折叠的 条评论
为什么被折叠?



