vector容器简析
vector代表向量的意思,是一种顺序容器,一般情况下都是视为数组那样操作,但是和c/cpp数组不一样的地方就在于,c/cpp中数组需要预先分配大小,而vector数组和python中类似,是柔性数组,需要的时候就能分配相应大小,无序预先分配。
如果所需空间超过当前vector申请的空间,vector会重新分配一个更大的空间,然后把现有的数据拷贝过去,再对原内存空间的对象执行析构,最后释放掉原内存空间。
初始化vector对象
vector<T>v1;
默认初始化方式,内容为空 T代表数据类型
vector<T>v2(v1);
调用拷贝构造函数,v2是v1的一个拷贝
vector<T>v3(n,i);
初始化n个元素 值为i,如果i缺省则是为0
vector<T>v4{1,2,3};
这种新建方法在std=c++11以上可以使用,新建一个值为1,2,3的数组。
vector(begin,end);
复制 [begin,end) 区间内另一个数组的元素到 vector 中
vector常用函数
判断函数
empty()
:判断向量是否为空,为空返回真,否则为假
int capacity() const
: 返回当前向量张红所能容纳的最大元素值
int max_size() const
: 返回最大可允许的 vector 元素数量值
增加函数
push_back(数据)
:将数据插入到向量的尾部
iterator insert(iterator it,const T& x)
: 向量中迭代器指向元素前增加一个元素 x
iterator insert(iterator it,int n,const T& x)
: 向量中迭代器指向元素前增加 n 个相同的元素 x
iterator insert(iterator it,const_iterator first,const_iterator last)
: 向量中迭代器指向元素前插入另一个相同类型向量的 [first,last) 间的数据
删除函数
pop_back()
:删除向量尾部的数据
clear()
:清空向量
iterator erase(iterator it)
: 删除向量中迭代器指向元素
iterator erase(iterator first,iterator last)
: 删除向量中 [first,last) 中元素
遍历函数
iterator begin()
:返回向量(数组)的首元素地址给迭代器
iterator end()
: 返回向量(数组)的末元素的下一个元素的地址给迭代器
front()
:返回得到向量的第一个元素的数据
back()
:返回得到向量的最后一个元素的数据
size()
:返回得到向量中元素的个数(如果要对应下标需要减1)
reverse_iterator rbegin()
: 反向迭代器,指向最后一个元素
reverse_iterator rend()
: 反向迭代器,指向第一个元素之前的位置
其他函数
swap(vector&)
: 交换两个同类型向量的数据
assign(int n,const T& x)
: 设置向量中第 n 个元素的值为 x
assign(const_iterator first,const_iterator last)
: 向量中 [first,last) 中元素设置成当前向量元素
遍历方式
1.传统遍历方式 通过下标访问,和数组区别不大。
2.使用迭代器访问。
3.使用智能变量遍历:for(auto it:nums)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码