gpt4 book ai didi

c++ - 如何使用 unique_ptr 自动管理 vector> 的内存

转载 作者:太空宇宙 更新时间:2023-11-03 10:24:54 30 4
gpt4 key购买 nike

我在 C++ 函数中使用 vector 的 vector 。

    vector<vector<int>> foo

我想在这个对象超出范围时自动释放内存。为此,我改用以下内容:

    unique_ptr<vector<unique_ptr<vector<int>>> foo(new vector<unique_ptr<vector<int>>())

这听起来对吗,还是我不必要地复杂化了?

PS:如果不使用 unique_ptr,我想在堆上分配 vector 。那就是

    vector<vector<int>>* foo = new vector<vector<int>>();

所以我认为当 foo 应该超出范围时我必须手动清理一些东西?

最佳答案

你太复杂了。 vector 已经是自清洁的了(顶级 vector 超出范围时会调用析构函数,它会为每个包含的 调用它>vectors automatically),这只会引入额外的间接和分配器开销。

关于c++ - 如何使用 unique_ptr 自动管理 vector<vector<int>> 的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40031919/

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