gpt4 book ai didi

c++ - 删除用户定义的 vector - C++

转载 作者:行者123 更新时间:2023-11-30 01:31:23 27 4
gpt4 key购买 nike

我有 2 个类,比如 A 和 B。B 类有自己的析构函数。在 A 类中,我有一个指向 B 类对象的指针 vector 。 vector 如下:

vector<B*> vect;

在 A 类的析构函数中,我如何检索内存?如果我循环遍历 vector ,是否检索每个对象并对每个检索到的对象使用 delete?我在析构函数中试过了,但它会出现段错误。

非常欢迎任何解决此问题的帮助。抱歉,我无法发布代码。

最佳答案

如果A拥有vect指向的东西, 那么它应该能够 delete vect 中的每一项.如果这样做时出现段错误,那么您的代码中某处存在错误。

不过,一般来说,您最好还是使用智能指针。提升的 ptr_vector (Boost.Pointer Container 的一部分是为您的特定示例设计的,但简单的 std::vector<std::tr1::shared_ptr<B> > 也可以使用(尽管开销更大且语法更笨拙)。

关于c++ - 删除用户定义的 vector - C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3113667/

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