如何在指针向量中释放元素?

rin*_*nti 6 c++ pointers memory-management vector

所以我有一个像这样的指针向量:

vector<Example*> ve;
Run Code Online (Sandbox Code Playgroud)

我用这样的指针填充这个向量

Example* e = new Example();
ve.push_back(e)
Run Code Online (Sandbox Code Playgroud)

但是当我想删除它们时,我如何确保它们被取消分配?这够了吗?

ve.erase(ve.begin() + 1)
delete ve[1]
Run Code Online (Sandbox Code Playgroud)

Rei*_*ica 8

当然,你必须反过来这样做:

delete ve[1];
ve.erase(ve.begin() + 1);
Run Code Online (Sandbox Code Playgroud)

但是,std::unique_ptr在表达所有权时,使用智能指针(例如)而不是原始指针更为可取.