1.vector::clear和vector::erase的区别

1、vector::clear()函数的作用是清空容器中的内容,但如果是指针对象的话,并不能清空其内容,必须要像以下方法一样才能达到清空指针对象的内容:

vector<int*> xx;
for(int it=0;it!=xx.size();++it)
{
	delete xx[it];
}
xx.clear();

但并不回收内存,但你可以通过swap()函数来巧妙的达到回收内存的效果:

xx.clear();
xx.swap(vector<int>());

2、vector::erase()用于清空容器中的内容以及释放内存,并返回指向删除元素的下一个元素的迭代器。
阅读更多 登录后自动展开
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页