2 hanjing 1995 hanjing_1995 于 2016.09.16 08:48 提问

前两天面试时,面试官问vector的动态增长内部实现,和释放内存!!!!怎么回答,谢谢啦

前两天面试时,面试官问vector的动态增长内部实现,和释放内存!!!!怎么回答,谢谢啦。应该从哪方面回答呢~

3个回答

guwei4037
guwei4037   Ds   Rxr 2016.09.16 09:15

看下vector的源码,http://blog.csdn.net/lifu119/article/details/7893793

vector的动态增长:内存不足时,重新分配大小为原来的两倍的空间
data_allocator::deallocate()进行释放

oyljerry
oyljerry   Ds   Rxr 2016.09.16 11:42

根据当前插入元素的多少来动态扩展 一般会2倍比例增加 插入元素超过当前空间 就会新申请一个两倍新空间 然后把已有元素拷贝过去 再插入新元素 删除的时候就是反过来 动态缩小空间

chuyangxiang
chuyangxiang   2016.09.16 15:49

vechor增长一倍 ArrayList增长一半

Csdn user default icon
上传中...
上传图片
插入图片