1
假设在一个函数(即堆栈中)中定义了一个std :: vector并且该矢量被重新分配(例如通过插入数据)。矢量的任何部分是否堆在一起?如果是的话,当完成执行功能时,会不会在堆中留下垃圾?谢谢。关于函数中定义的矢量
假设在一个函数(即堆栈中)中定义了一个std :: vector并且该矢量被重新分配(例如通过插入数据)。矢量的任何部分是否堆在一起?如果是的话,当完成执行功能时,会不会在堆中留下垃圾?谢谢。关于函数中定义的矢量
该矢量的任何部分是在堆中?
是:所有在std::vector
的元素被存储在堆分配阵列。
完成执行功能后,它会在堆中留下垃圾吗?
编号std::vector
容器与所有标准库容器一样,负责清理它创建的任何对象。
然而,注意,如果你动态分配对象(例如,使用new
)并将它们存储在一个容器中,然后你是负责销毁这些对象。为了避免自己清理东西,你应该避免在任何可能的地方动态分配对象,并在其他地方使用智能指针。