vector

vector 称为向量,是一种类模板,其声明包含在头文件< vector>中,所以使用veto 时需要包含头文件< vector> 。
vector是一种支持高效地随机访问和高效地向尾部插入新元素的容器,它一般实现为一 个动态分配的数组,所以在程序开发过程中,使用vector作为动态数组是非常方便的
类 似于数组, vector分配连续的存储空间存储数据,个相邻数据在存储空间上是相邻的。所 以, vector可以像数组一样实现随机访问。
与数组不同的是, vector具有自动扩展容器大小 的功能,当 vector对象的存储空间不够时, vector对象会动使用new运算符申请一块更 大的内存空间,使用赋值运算符将原有的数据复制到新存储空间,并释放原有存储空间。在 具体实现内存空间的扩展时,扩展的内存空间一般会大于所需的内存空间。
另外,当删除 vector对象中的一个元素时,多出的闲置存储空间并不会马上被释放。因此, vector容器对 象已分配的空间所能容纳的元素个数(称为容量, Capacity)):通常会大于容器中实际存储的 元素个数(称为大小,Size)。
*** vector中的元素在内存空间上是相邻的***。当在某个位置插入或删除一个元素时,从这 个位置开始的、其后的所有元素都需要向后或向前移动一个位置。显然,这个位置越靠前, 需要移动的元素就越多,移动元素所花费的时间就越长,这种插入或删除操作的效率就越 低。在尾部添加或删除元素的时间是常数时间,但在头部插入或删除元素时是线性时间复 杂度。
因此, vector比较适合于存储相对固定、更新次数少的数据,或者只在尾部添加或者 删除元素。
## 1.声明vector对象
使用vector声明对象时需要为对象指定数据类型,用具体类型实例化模版类,然后实例化外对象,例如:

vector<int>v1;//创建空对象 存储int数据类型,v1中没有任何值//对v1元素访问是非法的
vector<int>v2(3);//创建容量大小为5的int类型向量//初始值都为0
vector<double>v3{ 1.2,5.2,4.1 };
vector<string>v4(3, "ab");//创建容量大小为3的string类型向量,三个元素初始值//都为ab;
vector<int>v5(v2);

vector 成员函数

1.capacity()
返回容器的容量。
2.resize(N)
修改容器容量为N。
3.size()
返回容器中元素的个数。
4.begin()
返回容器的初始迭代器。
5.end()
返回最后一个元素后面位置的迭代器。
6.assign(n,val)
把n个val为向量复制。

vector模板,初学者必读相关推荐

  1. VASP 初学者必读

    VASP 初学者必读 初学VASP(一) what's it? VASP = Vienna Ab-initio Simulation Package VASP is a complex package ...

  2. 选择排序和Java实现、C++ vector 模板类实现

    选择排序,Selection sort.工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的 ...

  3. java初学者必读-经验总结--经典!

    CSDN - 技术社区 - 主 题: java初学者必读-经验总结 作 者: wjmmml (笑着悲伤) 信 誉 值: 183 所属论坛: Java J2SE / 基础类 问题点数: 24 回复次数: ...

  4. Photoshop初学者必读十课

    Photoshop初学者必读十课 2010年06月15日 [b]一课:一个PS高手的话[/b] 这是一个PS高手的体会,希望能对大家有所启迪. 1.不要看到别人的作品第一句话就说:给个教程吧!你应该想 ...

  5. 好程序员Java培训分享Java初学者必读

    好程序员Java培训分享Java初学者必读,近年来各种各样的编程语言不断崛起,但唯有Java是牢牢占据着老大的位置,目前几乎90%以上的大中型互联网应用系统在服务器端开发首选Java.因此,也是吸引了 ...

  6. 什么是闭包,Python闭包(初学者必读)

    什么是闭包,Python闭包(初学者必读) 前面章节中,已经对 Python 闭包做了初步的讲解,本节将详解介绍到底什么是闭包,以及使用闭包有哪些好处. 闭包,又称闭包函数或者闭合函数,其实和前面讲的 ...

  7. 初学者必读Android开发入门之路

    初学者必读Android开发入门之路 [IT168评论]本人一直致力于嵌入式相关知识和技术在中国大陆地区的技术传播及嵌入式产品及移动设备的系统和应用程序开发,近两年主要专注于3G技术领域,重点是研究A ...

  8. 5. vector 模板类型? 数据类型?

    STL下的vector是 模板类型,而不是数据类型. 所以 vector::size_type 是错的: for example: int main(int argc, char* argv[]) { ...

  9. 模拟版图初学者必读书籍,手把手打通你的任督二脉(可下载)

    在半导体行业中,模拟版图的入门门槛相对于来说比较低,本科的同学就可以学习转行模拟版图.在今年的秋招中,模拟版图的岗位相较于前端和后端比较好找工作.所以很多同学想要转行到模拟版图这个岗位,移知芯博士,今 ...

最新文章

  1. 转:QQ圈子:社交神器还是隐私魔鬼?
  2. AI之FL:联邦学习(Federated Learning)的简介、入门、应用之详细攻略
  3. 浅谈虚拟化技术下的云安全如何处置
  4. 一文带你看懂分布式软总线在家庭场景的应用
  5. 运算放大器单电源应用中的使用齐纳二极管偏置方法
  6. 如何在Java中验证电话号码(正则表达式+ Google libphonenumber)
  7. leetcode1504. 统计全 1 子矩形(动态规划)
  8. 你让,勋爵? 使用Jenkins声明性管道的Docker中的Docker
  9. 面试了57位高级产品经理,我发现混得好的人都有这个特质!
  10. C#LeetCode刷题之#933-最近的请求次数(Number of Recent Calls)
  11. bzoj1724[Usaco2006 Nov]Fence Repair 切割木板*
  12. Arrays.asList( ) 返回一个特殊的“ArrayList”
  13. 51单片机usb烧录电路_STC51单片机ISP自动下载电路设计
  14. Clip_by_norm 函数理解
  15. Hi3519V101运行MPP业务
  16. i5功耗最低的cpu_CPU真的很费电? 三种环境下处理器功耗实测
  17. web漏洞-远端WWW服务支持TRACE请求
  18. 一个阅读分享的微信小程序(也可用于新闻阅读,新闻分享)(原创)
  19. .NET5发布,这个微软“全家桶”会是.NET的春天吗?
  20. 天津大学计算机科学学院,孙富春-天津大学计算机科学与技术学院.PDF

热门文章

  1. php输出字符unicode码,[PHP]单字符Unicode编码解码函数
  2. C语言用数组(顺序表)实现大小固定的队列的方法
  3. npm install 原理(node_modules)
  4. web前端入门学习 css(2)
  5. 黑马程序员pink老师前端入门教程,零基础必看的JavaScript基础语法视频教程(三)
  6. oracle索引和同义词,关于Oracle序列、索引、同义词
  7. Synchronize和Lock 的区别与用法
  8. bitnamigitlab_100%可用不坑爹的BitNami GitLab安装教程
  9. python列拼接dataframe_如何将两个dataframe中的两列合并为新dataframe(pandas)的一列?...
  10. opencv 人脸识别_Python学习:基于Opencv来快速实现人脸识别(完整版)