取消向量对中对象的内存分配

托德

我想知道如何在一对向量中释放对象的内存。

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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

free()函数不会从向量中取消分配内存

来自分类Dev

Java中的内存分配/取消分配

来自分类Dev

在未使用的对象上取消分配内存

来自分类Dev

类对象的C ++向量和动态内存分配

来自分类Dev

管理向量分配的内存

来自分类Dev

如何在iOS中取消分配数组的内存?

来自分类Dev

C++中返回对象的内存分配

来自分类Dev

当您想减小向量的大小时,为什么std :: vector :: resize()不取消分配内存?

来自分类Dev

取消分配基元向量

来自分类Dev

分配/取消分配许多小对象后,为什么内存不可重用?

来自分类Dev

取消分配动态内存

来自分类Dev

如何取消分配glBufferData内存

来自分类Dev

取消分配共享内存段

来自分类Dev

取消分配之前的内存峰值

来自分类Dev

C中具有动态内存分配的指针向量

来自分类Dev

向量分配和内存使用

来自分类Dev

取消分配函数中分配的内存

来自分类Dev

对象数组的内存分配

来自分类Dev

对象内存分配

来自分类Dev

对象数组的内存分配

来自分类Dev

重新分配向量后,向量中的内存会发生什么情况

来自分类Dev

在C ++中初始化向量时,能否为向量分配大的内存块

来自分类Dev

对象内对象的内存分配

来自分类Dev

类对象的C ++向量和动态内存分配-第2部分

来自分类Dev

使用向量 r 为列表中的每个对象分配名称

来自分类Dev

POD对象向量的内存布局

来自分类Dev

在 C++ 中销毁动态分配的内存(数组对象)

来自分类Dev

关闭ViewController不会取消分配内存

来自分类Dev

从C#中的事件中取消注册委托人时的高内存分配