gpt4 book ai didi

c++ - 在 C++ 中删除指针 vector 与对象

转载 作者:搜寻专家 更新时间:2023-10-30 23:49:17 24 4
gpt4 key购买 nike

我有一个指向一个对象的指针 vector (我将它们作为指针,因为我会淹没很多位置,我想只交换指针会快得多,而不是交换整个对象。

无论如何,我最终需要删除 vector ,但它指向的对象仍然需要有效。文档似乎说它将在 vector 中的每个对象上调用析构函数。当它是对象数组时这是有意义的,但是如果数组是指向对象的指针数组,那么指针指向的对象是否也会被删除,或者我需要手动删除它们吗?

如果它们被自动删除,保留对象的唯一方法(假设它们在不同的 vector 中使用)是将对象实际复制到另一个位置,并让 vector 中的指针指向这些对象(而不是原件)?

谢谢。

最佳答案

指针 值上调用析构函数什么都不做。 (另一方面,对指针值调用 delete 会运行指向对象的析构函数,释放内存。)

对于指向对象的指针数组,如果需要的话,您必须手动释放对象。

关于c++ - 在 C++ 中删除指针 vector 与对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4716546/

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