首页 > 解决方案 > 动态分配对象向量的干净销毁

问题描述

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

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;
        }

标签: c++objectvectordestructordynamic-memory-allocation

解决方案


就在这里。它被称为智能指针

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

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

居住


推荐阅读