C++ 关于函数中定义的向量
假设在函数中定义了一个std::vector(即,在堆栈上),并重新分配了该向量(如通过插入数据)。向量的任何部分都在堆中吗?如果是,执行完函数后,它会在堆中留下任何垃圾吗?谢谢 向量的任何部分都在堆中吗 是:C++ 关于函数中定义的向量,c++,memory-management,memory-leaks,C++,Memory Management,Memory Leaks,假设在函数中定义了一个std::vector(即,在堆栈上),并重新分配了该向量(如通过插入数据)。向量的任何部分都在堆中吗?如果是,执行完函数后,它会在堆中留下任何垃圾吗?谢谢 向量的任何部分都在堆中吗 是:std::vector中的所有元素都存储在堆分配的数组中 执行完函数后,它会在堆中留下任何垃圾吗 否。std::vector容器与所有标准库容器一样,负责清理它创建的任何对象 但是,请注意,如果您动态分配对象(例如,使用new)并将其存储在容器中,则您有责任销毁这些对象。为了避免自己清理东
std::vector
中的所有元素都存储在堆分配的数组中
执行完函数后,它会在堆中留下任何垃圾吗
否。std::vector
容器与所有标准库容器一样,负责清理它创建的任何对象
但是,请注意,如果您动态分配对象(例如,使用new
)并将其存储在容器中,则您有责任销毁这些对象。为了避免自己清理东西,应该尽可能避免显式地动态分配对象,并在其他地方使用智能指针