【发布时间】:2013-05-08 16:49:45
【问题描述】:
所以我有一个这样的指针向量:
vector<Example*> ve;
我用这样的指针填充这个向量
Example* e = new Example();
ve.push_back(e)
但是当我想删除它们时,我如何确保它们被释放? 够了吗?
ve.erase(ve.begin() + 1)
delete ve[1]
【问题讨论】:
-
要考虑的一件事:你需要指针吗?如果对象是不同的(多态的)类型,你会这样做;或者如果它们无法移动或移动成本过高;或者如果向量不“拥有”它们(它在这里这样做,因为您想在移除时释放它们)。否则,请考虑使用
vector<Example>。
标签: c++ pointers vector memory-management