ora*_*ice 2 c++ memory-management vector
所以我有一个堆分配的向量向量:
std::vector<std::vector<int>>* matrix = new std::vector<std::vector<int>>();
Run Code Online (Sandbox Code Playgroud)
在将大量数据放入之后matrix.删除此对象的正确方法是什么?
是否delete matrix释放所有内部向量?
是的delete matrix;会没事的.
您可能需要考虑是否需要动态分配矢量.向量总是将它们的数据存储在自由存储(堆)中,因此不需要动态分配它们.它们具有非常小的堆叠足迹.
如果你必须动态分配你的向量,那么你应该认真考虑使用智能指针,如std :: unique_ptr或std :: shared_ptr,那么你根本不需要调用delete:
auto matrix = std::make_unique<std::vector<std::vector<int>>>();
Run Code Online (Sandbox Code Playgroud)