gpt4 book ai didi

c++ - STL vector : When vector capacity is increased due to insert, 在分配新的连续内存后,旧的连续内存是删除还是保留?

转载 作者:太空狗 更新时间:2023-10-29 23:51:58 24 4
gpt4 key购买 nike

最近对 STL::vector 大小增加后旧内存是否会被释放感到困惑。

当 STL::vector 容量因插入而增加时,分配新的连续内存(=2*当前 vector 容量)并将旧内容复制到新内存。旧内存被释放。

最近我们开始讨论,有些人认为旧内存不会被释放,而是被保留以供引用。因此,在多次调整大小后,STL::vector 开始累积并不真正需要的内存。

据我了解,它会释放旧内存,但我没有关于它的任何具体文档。但是我的理解可能是错误的!如果有人知道详细信息,我将不胜感激!

最佳答案

vector 绝对不会保留内存。分配器可能,或者 operator new/delete 可能。甚至操作系统也可能为您的程序保留内存。

关于c++ - STL vector : When vector capacity is increased due to insert, 在分配新的连续内存后,旧的连续内存是删除还是保留?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18010848/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com