【发布时间】:2026-02-13 13:15:01
【问题描述】:
我对解除分配向量内存的工作方式感到困惑。 对于下面的示例,
vector<Object*> vec;
for(int i = 0; i < 10; i++){
Object* obj = new Object();
vec.push_pack(obj);
}
//DEALLOCATE CODE HERE//
我应该怎么做才能正确释放 vec? 该程序似乎运行良好,但我不确定。
【问题讨论】:
-
所有你
new你必须delete-vector不会改变它的任何东西 -
首选的方式是根本不动态分配,
vector<Object>在很多情况下是正确的选择 -
只是不要使用 new,使用 std::unique_ptr 代替:
-
只需迭代向量以删除每个元素,然后清除(如
resize(0))它,看我的回答