gpt4 book ai didi

c++ - 释放一对 vector 中对象的内存

转载 作者:行者123 更新时间:2023-11-28 03:07:10 25 4
gpt4 key购买 nike

我想知道如何取消分配一对 vector 中对象的内存。

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;
}

但是。你可能不应该这样做。
拥有不受管理的指针是一个坏主意。您应该更改 vector 的类型以使用 std::unique_ptr

vector< pair<int, std::unique_ptr<object>>>  vectorObject;

这是因为手动删除对象很容易出错,除非您采取保护措施(通过 uisng RAII)不是异常安全

关于c++ - 释放一对 vector 中对象的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19407285/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com