STL向量:当插入时向量容量增加时,在分配新的连续内存后是否删除或保留旧的连续内存?

pit*_*nal 2 c++ vector

最近在STL :: vector size增加后是否会释放旧内存时会产生混淆.

当由于插入而增加stl :: vector容量时,分配新的连续内存(= 2*当前向量容量)并将旧内容复制到新内存.旧的记忆被释放了.

现在我们最近进行讨论,有些人认为旧存储器没有被释放,而是保留供参考.因此,在多个resize上,stl :: vector开始累积不真正需要的内存.

根据我的理解,它释放了旧的记忆,但我没有任何具体的文件.但是我的理解可能是错的!如果有人知道细节,我会很感激!

MSa*_*ers 8

vector绝对不保持内存.分配器可能或operator new/delete可能.即使操作系统可能会为您的程序保留内存.