vector模板,初学者必读

在这里插入图片描述

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为向量复制。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
函数模板vector是C++标准库中的一个容器模板,用于存储和操作一系列元素。它提供了动态数组的功能,可以在运行时动态地调整容器的大小。 根据引用,C++11新增了移动构造函数和初始化器列表构造函数。移动构造函数可以在将一个vector对象移动到另一个vector对象时实现高效的资源管理。初始化器列表构造函数允许以初始化器列表的方式进行vector对象的初始化。 根据引用,vector类提供了返回指向元素的迭代器和返回元素值引用的函数。具体选择哪个函数取决于容器存储的元素是否是const类型。 根据引用,vector类还提供了一个构造函数,该构造函数不带任何参数,可以创建一个空的vector对象。 总结起来,函数模板vector是一个通用的容器模板,提供了动态数组的功能,并且支持移动构造函数、初始化器列表构造函数和返回迭代器、返回元素值引用的函数。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [c++模板vector成员函数](https://blog.csdn.net/weixin_46557247/article/details/113483229)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

落春只在无意间

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

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

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

打赏作者

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

抵扣说明:

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

余额充值