vector的size()与capacity()的区别

vector的size()与capacity()的区别

先看代码

avatar

运行结果

avatar

解释

size()是求的当前容器中的元素的个数,对应的有resize(),而capacity()是预分配的内存大小, 看上面的运行结果,刚开始时初始化容器中没有对象,所以两个都是0,当用v.reserve(10)申请了10个内存空间时,capacity变成了10,注意这时候容器中没有对象,所以size仍然是0,然后当用resize(10)时,size的大小也变成了10,而当再向容器中放入一元素的时候,capacity变成了20,因为这时候要重新分配一部分内存空间, 至于分配多少,不同的库有不同的实现,这里是加倍。

注意:size()与resize()对应, capacity()与reserve()对应

打赏,谢谢~~

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,多谢支持~

打开微信扫一扫,即可进行扫码打赏哦