1. #include <iostream>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6. //STL vector的几种清空容器(删除)办法
  7.  
  8. void test()
  9. {
  10. vector<int> vecnum;
  11. vecnum.push_back();
  12. vecnum.push_back();
  13. vecnum.push_back();
  14. vecnum.push_back();
  15. vecnum.push_back();
  16. vecnum.push_back();
  17. vecnum.push_back();
  18.  
  19. //打印vector的大小和容量
  20. cout << "old: size = " << vecnum.size() << " ; capacity = " << vecnum.capacity() << endl;
  21.  
  22. //1. clear(),清空元素,但不回收空间
  23.  
  24. //vecnum.clear();
  25.  
  26. //2. 使用 erase循环删除,结果同上
  27.  
  28. //vector<int>::iterator it;
  29. //for (it = vecnum.begin(); it != vecnum.end(); )
  30. //{
  31. // //注意使用erase()方法时,迭代不要随意的++
  32. // it = vecnum.erase(it);
  33. //}
  34.  
  35. //结论:erase在每次操作时,迭代器指针会整体前移1,就是每次都会移动全部数据,所以vector不适合做频繁删除的容器
  36.  
  37. //3. 最简单的使用swap,清除元素并回收内存
  38. //3.1 写法一
  39.  
  40. //vector<int>().swap(vecnum);
  41.  
  42. //3.2 写法二
  43. vecnum.swap(vector<int>());
  44.  
  45. //打印vector的大小和容量
  46. cout << "last: size = " << vecnum.size() << " ; capacity = " << vecnum.capacity() << endl;
  47.  
  48. }
  49.  
  50. int main()
  51. {
  52. test();
  53. getchar();
  54. return ;
  55. }

C++ vector清空元素的三种方法的更多相关文章

  1. 清空StringBuilder的三种方法及效率

    清空StringBuilder的三种方法及效率 大家知道对于字符串频繁拼接是使用stringbuilder.Append方法比使用string+=方法效率高很多,但有时需要清空stringbuilde ...

  2. javascript 获取html元素的三种方法

    操作HTML元素 你首先找到该元素. 三种方法来做这件事: 通过id找到HTML元素 通过标签名找到HTML元素 通过类名找到HTML元素 通过id查找HTML元素 在DOM中查找HTML元素的最简单 ...

  3. CSS围住浮动元素的三种方法

    浮动元素脱离了文档流,其父元素看不到它了,因而不会包围它.浮动会“扩散”到下一个清除浮动的元素处.这会引起不想要的页面布局效果. 清除浮动的方法有三种: 1.父元素overflow:hidden 2. ...

  4. App元素定位三种方法

    来自博客: http://testingpai.com/article/1595507262082 以下方法操作前必须确保有手机设备连入电脑,检测是否有手机连入命令 adb devices 第一种:A ...

  5. JS 创建元素的三种方法

    1.动态创建元素一 document.write() 例如向页面中输出一个 li 标签 <pre class="html" name="code"> ...

  6. javascript获取数组最后一个元素(三种方法)

    JavaScript 获取Array末尾元素 一.JavaScript pop() 方法 pop() 方法用于删除并返回数组的最后一个元素. 注意:pop() 方法将删除 arrayObject 的最 ...

  7. python列表删除重复元素的三种方法

    给定一个列表,要求删除列表中重复元素. listA = ['python','语','言','是','一','门','动','态','语','言'] 方法1,对列表调用排序,从末尾依次比较相邻两个元素 ...

  8. ZH奶酪:JavaScript清空数组的三种方法

    参考链接:http://snandy.iteye.com/blog/893955 方式1,length赋值为0 目前 Prototype中数组的 clear 方法和mootools库中数组的 empt ...

  9. jQuery -&gt; 获取后代元素的三种方法

    假设我们有内容例如以下的html文件,那么怎样选取包括在<p>元素内的<i>元素呢? 邪馬台国の謎と弥生時代 紀元前1000年ごろ.水稲工作の技術をもつ集団が大挙して日本に移住 ...

随机推荐

  1. c++中浮点数精度设置

    1.包含头文件<iomanip>,附注manip是manipulator,操控的简写. 2.第一种写法: cout<<setiosflags(ios::); 第二种写法: co ...

  2. vivado 调用UE

  3. [na]ping提示&各系统默认的TTL值

    1,Win7 ping 不存在的地址(请求超时) ip routing和no ip routing no ip routing----不查路由表 不配置网关---arp-catch中存在很多条目(相当 ...

  4. flexb布局图解

  5. android:3D垂直翻转动画-FlipAnimation

    需求 对ImageView进行相似于翻纸牌的动画 解决 各种Animator的组合 第一步动画: 动画代码文件1,card_flip_left_out.xml <? xml version=&q ...

  6. 每日英语:China Destroys Six Tons of Confiscated Ivory

    BEIJING—Chinese government officials destroyed more than six tons of ivory that had been illegally s ...

  7. 【Android】json格式详解

    JSON有两种结构 1. “名称/值”对的集合(A collection of name/value pairs).    不同的语言中,它被理解为对象(object),记录(record),结构(s ...

  8. layui的table中使用switch

    {{# if(false){ }} <input type="checkbox" name="switch" lay-skin="switch& ...

  9. Android NDK之二:创建NativeActivity

    转:http://blog.csdn.net/xiruanliuwei/article/details/7560914 Android NDK为我们提供了两种方式来实现我们的native activi ...

  10. BAT-增加JAVA环境变量(WIN764位)

    相关资料:1.http://www.jb51.net/article/52756.htm2.http://blog.csdn.net/fireghost57/article/details/21103 ...