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)
当然,你必须反过来这样做:
delete ve[1];
ve.erase(ve.begin() + 1);
Run Code Online (Sandbox Code Playgroud)
但是,std::unique_ptr在表达所有权时,使用智能指针(例如)而不是原始指针更为可取.
| 归档时间: |
|
| 查看次数: |
1399 次 |
| 最近记录: |