vector模板,初学者必读

本文详细介绍了C++标准库中的vector容器,包括其特性、动态扩展机制、高效访问和尾部插入操作。vector类似数组,但能自动扩展,适用于存储固定、更新少的数据或在尾部增删元素。文中还展示了如何声明vector对象并列举了关键成员函数如capacity()、resize()等。

在这里插入图片描述

vector

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

落春只在无意间

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值