C++ vector讲解

本文详细对比了C++中的数组与vector两种数据结构,分析了它们在存储方式、访问元素、动态分配空间等方面的异同。同时,深入介绍了vector的常见用法,如push_back、pop_back、begin、end等函数的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C++中的数组是与vector类似的一种数据结构,两者其实都是存储一种数据类型元素的容器。

1.数组与vector的相同点

1)都采用顺序存储的方式,可以存储任何类型的元素。

2)在访问元素方面,二者都是既可以通过下标访问,又可以通过迭代器来访问,对于迭代器访问,C++更趋向于使用迭代器而不是下标操作,因为标准库为每一种标准容器定义了一种迭代器类型,而只用少数容器支持下标操作访问容器元素。

ps:稍微提一下迭代器:

C++中的迭代器有两种,const_iterator和iterator,const_iterator只能用于读取不能修改容器内元素,下面以vector的迭代器iteration为例

vector<int> v;
vector<int>::iteration  i1=v.begin();//每个容器都定义了begin,end函数来返回给迭代器,现在迭代器i1指向vector的第一个元素
vector<int>::iteration  i2=v.end();//现在迭代器i2指向vector的最后一个元素
++i1 ;                    //给i1加1,使其指向容器的下一个元素

2.数组与vector的不同点

1)是否动态分配空间:数组是就为数组分配了固定长的空间,不可存储多于定义长度的元素。而vector的优越性在于,可以动态分配空间,vector长度不固定,可以任意增加,避免内存空间的浪费。

2)vector可以通过size()函数;来获取当前容器长度,而数组长度在定义的时候就已经确定。

3)vector可以在末尾通过push_back()加入元素,而数组不可以在超出定义长度之外的部分加入元素。

3.vector的常见用法

1.push_back 在数组的最后添加一个数据 

2.pop_back 去掉数组的最后一个数据 

3.begin 得到数组头的指针 

4.end 得到数组的最后一个单元+1的指针 

5.size 当前使用数据的大小 
 
6.capacity 当前vector分配的大小 

7.erase 删除指针指向的数据项 

8.clear 清空当前的vector 

9.empty 判断vector是否为空 

10.sort(v.begin(),v.end()) 从小到大排序, sort 需要头文件 #include <algorithm>

11.reverse(v.begin(),v.end())  从大到小排序


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值