c++ - 干净地销毁动态分配对象的 vector

标签 c++ object vector destructor dynamic-memory-allocation

是否有另一种方法可以释放已分配对象的内存,而不是遍历 vector/列表?

int main()
        {
            vector<Class*> v;
            v.push_back(new Class(2,2));
            v.push_back(new Class(65,65));
            v.push_back(new Class(45,23));
            for(Class* &it : v)
               delete it;
            return 0;
        }

最佳答案

是的。它叫做smart pointers :

std::vector<std::unique_ptr<Class>> v;
v.push_back(std::make_unique<Class>(Class(2,5)));

但是,如果您没有理由使用动态分配的对象,则更喜欢 std::vector<Class> .

Live

关于c++ - 干净地销毁动态分配对象的 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57836234/

相关文章:

c++ - 记录代码所用时间

c++ - 模板类的容器对象

java - FindBugs Integer 与预期的参数类型不兼容?

python - PyGTK 应用程序的主类是否应该扩展 Gtk.Window?

algorithm - 将二次贝塞尔曲线转换为三次贝塞尔曲线

c++ - 有没有一种方法可以禁用临时对象参数的功能?

c++ - 为什么我的渲染线程占用了 100% 的 cpu?

python - 在 Python 中复制对象?

c++ - MSVC 10 + Luabind + std::vector == 拒绝编译

r - 将向量与向量列表匹配