C++ vector讲解

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())  从大到小排序


 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值