干净地破坏动态定位对象的向量

Clean destruction of a vector of dynamically alocated objects

本文关键字:定位 对象 向量 动态      更新时间:2023-10-16

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

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

是的,有。 它被称为智能指针:

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

但是,如果您没有理由使用动态分配的对象,请首选std::vector<Class>