打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
容器中clear()和erase()的区别

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

  1. vectorint*> xx;  
  2. for(int it=0;it!=xx.size();++it)  
  3. {  
  4.     delete xx[it];  
  5. }  
  6. xx.clear();  
vector xx;for(int it=0;it!=xx.size();++it){ delete xx[it];}xx.clear();



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

  1. xx.clear();  
  2. xx.swap(vectorint>());  
xx.clear();xx.swap(vector());


2、vector::erase()用于清空容器中的内容以及释放内存,并返回指向删除元素的下一个元素的迭代器。

erase:

erasearray:
array 参数是要清除的数组变量的名称。
iterator erase( iterator pos );  //删除pos指向的字符, 返回指向下一个字符的迭代器,
iterator erase( iterator start, iterator end ); //删除从start到end的所有字符, 返回一个迭代器,指向被删除的最后一个字符的下一个位置
basic_string &erase( size_type index = 0, size_type num = npos ); //删除从index索引开始的num个字符, 返回*this.
参数index 和 num 有默认值, 这意味着erase()可以这样调用:只带有index以删除index后的所有字符,或者不带有任何参数以删除所有字符.

原理是向前挪移一个位置。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
STL remove和erase
STL序列式容器中删除元素的方法和陷阱一 - CyberVisualink的专栏 - CS...
C 容器及选用总结
vector、map容器删除操作总结
STL中用erase()方法遍历删除元素
Effective STL(item1 - item22)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服