1、clear,erase ,pop_back() 函数只删除对象,并没有释放vec中的内存,若对象是指针还需要delete;
2、在erase,clear,pop_back()删除对象的后,size改变,capacity保持不变,所以push_back也是在capacity范围内进行插入新对象,当插入的数据数量大于capacity的时候,才进行扩容并再次插入;
3、释放vec并清空capacity的方式:
{
delete vec[i];
vec[i]= NULL;
}
vec.clear(); //对象不为指针时可和上面的替换
vec.swap(vec<T*>());//若对象为指针,一定要先delete,否则也会造成内存泄漏;
4、 总结一下:
vector只有扩容,没有减容之说,避免内存持续增长,对vector要进行适当释放;
相关文章
- 03-23css 子元素使用float,而父元素没有高度,不能自适应的问题
- 03-23[问题2014S05] 解答
- 03-23清除float 父元素塌陷问题
- 03-23关于在生命周期当中进行setState操作的问题
- 03-23问题解决——ShowWindow不显示窗口
- 03-23apicloud 如何解决轮播图变形问题
- 03-23flex中DataGrid里使用itemRenderer后数据无法绑定到数据源的问题
- 03-231234. 倍数问题题解 (余数dp线性)——南昌理工学院
- 03-23Planetoid() 下载数据出现连接失败的问题解决
- 03-23GIT 身份验证失败问题解决方案,由于修改密码产生的问题