gpt4 book ai didi

c++ - 释放存储在 vector 中的对象?

转载 作者:可可西里 更新时间:2023-11-01 18:40:33 26 4
gpt4 key购买 nike

我有一个创建对象 vector 的类。在此类的解构函数中,我试图释放分配给对象的内存。我试图通过循环遍历 vector 来做到这一点。所以,如果 vector 被称为 map ,我正在做:

Building::~Building() {
int i;
for (i=0; i<maps.size(); i++) {
delete[] &maps[i];
}
}

当我运行此程序时,程序会在释放内存时出现段错误。我认为我正在做的实际上是删除存储对象的数组而不是对象本身。这个对吗?如果对我做错了什么没有任何想法?

最佳答案

这取决于 vector 是如何定义的。

如果 maps 是 vector<myClass*>你用类似的东西删除每个元素:

for ( i = 0; i < maps.size(); i++)
{
delete maps[i];
}

如果 maps 是 vector<myClass>我认为您不需要删除单个元素。

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

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