本文共 797 字,大约阅读时间需要 2 分钟。
1、vector::clear()函数的作用是清空容器中的内容,但如果是指针对象的话,并不能清空其内容,必须要像以下方法一样才能达到清空指针对象的内容:
- vector<int*> xx;
- for(int it=0;it!=xx.size();++it)
- {
- delete xx[it];
- }
- xx.clear();
vector xx;for(int it=0;it!=xx.size();++it){ delete xx[it];}xx.clear();
但并不回收内存,但你可以通过swap()函数来巧妙的达到回收内存的效果:
- xx.clear();
- xx.swap(vector<int>());
xx.clear();xx.swap(vector ());
2、vector::erase()用于清空容器中的内容以及释放内存,并返回指向删除元素的下一个元素的迭代器。
erase:
iterator erase( iterator pos ); //
删除pos指向的字符, 返回指向下一个字符的 , iterator erase( iterator start, iterator end ); //
删除从start到end的所有字符, 返回一个 ,指向被删除的最后一个字符的下一个位置 basic_string &erase( index = 0, size_type num = npos ); //
删除从index索引开始的num个字符, 返回*this. 参数index 和 num 有默认值, 这意味着erase()可以这样调用:只带有index以删除index后的所有字符,或者不带有任何参数以删除所有字符.
转载地址:http://wtuxi.baihongyu.com/