gpt4 book ai didi

vector 的 C++ STL vector 和内存管理

转载 作者:行者123 更新时间:2023-11-30 01:17:21 25 4
gpt4 key购买 nike

我们有一个场景,我们需要创建一个

std::vector<std::vector<float>> data;

因为 vector 的长度完全不同。

当数据被释放时,数据中的每个 vector 是否也释放了它的空间?

最佳答案

所有标准库类型都适本地实现了 RAII。也就是说,它们执行的任何类型的内部动态分配都将在对象被销毁时自动清除。您永远无需担心。

对于标准容器,例如 std::vector , 它会自动确保它的每个元素都被销毁。当然,如果std::vector的元素是他们自己std::vector s,他们将依次破坏他们的元素。一切都是自动的。

您可能已经看到您有一个 std::vector<T*> 的示例和 T然后使用 new 手动分配对象.重要的是要意识到 vector 的元素不是 T对象,但是 T*对象。 指针 将自动清除。由于您手动分配了 T对象,您需要手动释放它们。 (正如@Veritas 在评论中所说,在这种情况下,您应该更喜欢使用智能指针)

关于 vector 的 C++ STL vector 和内存管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24586646/

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