C++ 动态定位对象向量的干净销毁

C++ 动态定位对象向量的干净销毁,c++,object,vector,destructor,dynamic-memory-allocation,C++,Object,Vector,Destructor,Dynamic Memory Allocation,是否有其他方法释放已定位对象的内存,而不是遍历向量/列表 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)

是否有其他方法释放已定位对象的内存,而不是遍历向量/列表

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;
        }
intmain()
{
向量v;
v、 推回(新类(2,2));
v、 推回(新类(65,65));
v、 推回(新类(45,23));
适用于(类别*&it:v)
删除它;
返回0;
}

是的,有。它被称为:

std::vector v;
v、 推回(std::使_唯一(类(2,5));
但是,如果您没有理由使用动态分配的对象,请选择
std::vector


RAII
std::vector v
完全不使用指针,或者与容器一起使用。或者,您可以简单地使用
std::vector
并避免(可能)不必要的间接寻址。答案。去吧。在里面这个回答。节。不难理解。
std::vector<std::unique_ptr<Class>> v;
v.push_back(std::make_unique<Class>(Class(2,5)));