C++ vector清空元素的三种方法
#include <iostream>
#include <vector> using namespace std; //STL vector的几种清空容器(删除)办法 void test()
{
vector<int> vecnum;
vecnum.push_back();
vecnum.push_back();
vecnum.push_back();
vecnum.push_back();
vecnum.push_back();
vecnum.push_back();
vecnum.push_back(); //打印vector的大小和容量
cout << "old: size = " << vecnum.size() << " ; capacity = " << vecnum.capacity() << endl; //1. clear(),清空元素,但不回收空间 //vecnum.clear(); //2. 使用 erase循环删除,结果同上 //vector<int>::iterator it;
//for (it = vecnum.begin(); it != vecnum.end(); )
//{
// //注意使用erase()方法时,迭代不要随意的++
// it = vecnum.erase(it);
//} //结论:erase在每次操作时,迭代器指针会整体前移1,就是每次都会移动全部数据,所以vector不适合做频繁删除的容器 //3. 最简单的使用swap,清除元素并回收内存
//3.1 写法一 //vector<int>().swap(vecnum); //3.2 写法二
vecnum.swap(vector<int>()); //打印vector的大小和容量
cout << "last: size = " << vecnum.size() << " ; capacity = " << vecnum.capacity() << endl; } int main()
{
test();
getchar();
return ;
}
C++ vector清空元素的三种方法的更多相关文章
- 清空StringBuilder的三种方法及效率
清空StringBuilder的三种方法及效率 大家知道对于字符串频繁拼接是使用stringbuilder.Append方法比使用string+=方法效率高很多,但有时需要清空stringbuilde ...
- javascript 获取html元素的三种方法
操作HTML元素 你首先找到该元素. 三种方法来做这件事: 通过id找到HTML元素 通过标签名找到HTML元素 通过类名找到HTML元素 通过id查找HTML元素 在DOM中查找HTML元素的最简单 ...
- CSS围住浮动元素的三种方法
浮动元素脱离了文档流,其父元素看不到它了,因而不会包围它.浮动会“扩散”到下一个清除浮动的元素处.这会引起不想要的页面布局效果. 清除浮动的方法有三种: 1.父元素overflow:hidden 2. ...
- App元素定位三种方法
来自博客: http://testingpai.com/article/1595507262082 以下方法操作前必须确保有手机设备连入电脑,检测是否有手机连入命令 adb devices 第一种:A ...
- JS 创建元素的三种方法
1.动态创建元素一 document.write() 例如向页面中输出一个 li 标签 <pre class="html" name="code"> ...
- javascript获取数组最后一个元素(三种方法)
JavaScript 获取Array末尾元素 一.JavaScript pop() 方法 pop() 方法用于删除并返回数组的最后一个元素. 注意:pop() 方法将删除 arrayObject 的最 ...
- python列表删除重复元素的三种方法
给定一个列表,要求删除列表中重复元素. listA = ['python','语','言','是','一','门','动','态','语','言'] 方法1,对列表调用排序,从末尾依次比较相邻两个元素 ...
- ZH奶酪:JavaScript清空数组的三种方法
参考链接:http://snandy.iteye.com/blog/893955 方式1,length赋值为0 目前 Prototype中数组的 clear 方法和mootools库中数组的 empt ...
- jQuery -> 获取后代元素的三种方法
假设我们有内容例如以下的html文件,那么怎样选取包括在<p>元素内的<i>元素呢? 邪馬台国の謎と弥生時代 紀元前1000年ごろ.水稲工作の技術をもつ集団が大挙して日本に移住 ...
随机推荐
- studying Bitcoin
https://github.com/bitcoinbook/bitcoinbook/blob/develop/book.asciidoc https://github.com/bitcoin/bip ...
- HR必备基础能力之人性
https://www.jianshu.com/p/bbb858431c81 人力资源管理-从新手到入门(正文) 第一章 必备基础能力 第三节 人性 人力资源管理者(HR)日常工作中面对的主要对象是人 ...
- 【qt】QT 的信号与槽机制
QT 是一个跨平台的 C++ GUI 应用构架,它提供了丰富的窗口部件集,具有面向对象.易于扩展.真正的组件编程等特点,更为引人注目的是目前 Linux 上最为流行的 KDE 桌面环境就是建立在 QT ...
- git file mode change
近期在做ffmpeg版本合并时发现,TortoiseGit的Check for Modifications的修改对话框中有未修改的问题,直接导出diff,会有类似下面的输出: compat/plan9 ...
- maven 引入仓库外部jar
<dependency> <groupId>cn.com.do1</groupId> <artifactId>dqdp-template</art ...
- Docker考前突击
dockerfile 介绍 镜像(Image) 容器(Container) 仓库(Repository)
- svn 版本管理与自动部分发布
作为团队开发项目时,会遇到项目的版本管理,测试部署与发布部署,下面是摘至他人的关于版本管理和自动部署的方案. svn自动部署的实现: 使用svn的hook功能 1.在版本库的hooks目录下面,有一些 ...
- CentIOS PHP 扩展库
1.GD库 yum -y install php-gd
- java中定义enum示例
/** * Enumeration for the message delivery mode. Can be persistent or * non persistent. Use the meth ...
- iOS 导航栏返回到指定页面的方法和理解
关于ios中 viewcontroller的跳转问题,其中有一种方式是采用navigationController pushViewController 的方法,比如我从主页面跳转到了一级页面,又从一 ...