我想知道如何在一对向量中释放对象的内存。
vector< pair<int, object*> > vectorObject;
我确实尝试过使用迭代器遍历所有元素,但是我不确定如何删除对中的对象。
for (vector< pair<int, object*> >::iterator it = vectorObject.begin(); it != vectorObject.end(); ++it) {
// delete?
}
希望有人会提出建议!
`直接的答案是:
for (vector< pair<int, object*> >::iterator it = vectorObject.begin(); it != vectorObject.end(); ++it) {
delete it->second;
}
但。您可能不应该这样做。
拥有未管理的指针是一个糟糕的主意。您应该更改要使用的向量的类型std::unique_ptr
。
vector< pair<int, std::unique_ptr<object>>> vectorObject;
这是因为手动删除对象容易出错,并且除非您采取措施(通过uisng RAII),否则NOT NOT SAFETY SAFETY是安全的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句