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

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

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

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

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

vechor增长一倍 ArrayList增长一半