C++STL中的vector常用的API

一、vector的介绍

1、vector的本质

vector是一个可以变长的类似数组的一个容器,而且可以像数组一样利用下标的方式访问数据,具有数组高效的地方;但是有的时候在插入数据的时候会因为扩容的问题,浪费掉很多的空间,而且在不是对数据进行的不是尾部处理的时候,时间复杂度也是相当的高,但是在面对尾部数据处理的时候在时间复杂度上就有很高的效率,并且扩容还会把全部的数据进行搬运,搬运(把数据移动到一个新的数组里面)就会浪费很多的时间。

二、vector的常用API

1、vector的迭代器

在vector的迭代器中就是,对应数组起始的下标位置和数组最后一个数据的下一个下标位置,其中begin()返回起始位置,end()返回最后的位置;rbegin(),放回的就是reverse_iteraotr它是最后一个数据的下一个下标位置,rend(),就是第一个位置的下标,和正向的迭代器反过来。
**!!!注意:*在vector的迭代器中,迭代器是会失效的,特别是在插入和删除的位置的时候会引发迭代器失效的问题,迭代器失效就是说迭代器原本指着的位置已经被改变了,vector的迭代器就是原生态指针T 。因此迭代器失效,实际就是迭代器底层对应指针所指向的空间被销毁了,而使用一块已经被释放的空间,造成的后果是程序崩溃(即如果继续使用已经失效的迭代器,程序可能会崩溃)。解决迭代器失效就需要重新更新迭代器

2、vector的增删查改API

push_back()
:就是在数据段的末尾插入数据
在这里插入图片描述
pop_back()
:就是删除数据段末尾的数据
在这里插入图片描述
erase()
😦)给需要删除位置的迭代器,使用erase一般需要配合find()函数一起使用
在这里插入图片描述
需要注意的是使用erase删除的时候需要查看删除的是否是最后一个元素,要是是最后一个元素会导致迭代器失效
在这里插入图片描述
operator[]
:就是可以像数组医用通过下标去访问或修改数据
在这里插入图片描述
insert()
:在指定的位置前插入数据
在这里插入图片描述
swap()
:可以交换两个vector的数据,但是需要更新迭代器
在这里插入图片描述

三、管理vector空间的API

1、不改变vector的size和capacity的API

size()
:计算vector有效数据的个数
capacity()
:计算vector的容量
empty()
:查看vector是否为空

2、改变vector的size和capacity的API

resize()
:会改变size
在这里插入图片描述

reserve()
:会改变capacity,就是vector的扩容机制

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>