C++之vector类的代码及其逻辑详解(上)

1. vetcor介绍及使用方法

1.1 什么是vector

1. vetcor是一种可以自己扩容的数组(扩大后不会变小)。

2. vector采用的连续存储空间来存储元素,这意味着我们可以小标的方式来对其进行访问。

3. vetcor在进行扩容的时候会尝试直接在其后面的空间进行扩容,如果后面的空间被其他的数据给使用了,那么它会寻找一块足够存放的下扩容候的它的空间,然后把自己转移进那块空间(一般来说vetcor在设计的时候都是进行2倍扩容)。

4. 因为vector在实现的时候我们会使用一个双指针分别指向它的头(begin())和它的尾(end())。所以它的尾插效率会很高,而它的头插效率会很低(因为需要把里面的元素一个个都向后移动一位)。

PS:在vector里面begin()是指向第一个元素的,而end()则是指向最后一个的下一个。

1.2 vetcor的使用

函数名字

作用
begin()返回头部的位置
end()返回最后一个的下一个的位置
swap()交换两个vector的头和尾(即交换两个vector的元素)
reserve()提前开辟空间,避免频繁扩容
push_back()尾插
capacity()返回vector的capacity
size()返回vector的size
[]这个就是在里面填下标,然后就可以返回下标对应的元素
resize()改变size的大小(大于size就扩容size,小于size就删除多余的元素并减小size)
erase()删除单个元素或者多个元素(填入要删除的开头和结尾)
pop_back()尾删
insert(it,x)在指定位置it上插入元素x
empty()判断是否为空,为空返回true,否则返回false
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

啊吧怪不啊吧

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

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

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

打赏作者

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

抵扣说明:

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

余额充值