C++ vector容器使用

前言:

古人云:工欲善其事,必先利其器。在学习的过程中很多时候都需要进行查询文档,这里分享一个自已一直在使用的文档 cplusplus.com(建议使用旧版)

正文:

一、关于vector的介绍

vector是C++库中提供的动态数组模板类,既然是动态数组自然可以进行数组的扩容,模板类赋予了数组可以存储任何类型的数据。
动态数组的扩容分为本地扩容和异地扩容

异地扩容是开一片新的空间将原来位置的内容拷贝到新的位置,然后将原来位置进行释放

模板类的定义

  • 其中T是需要在数组中存储数据的类型
  • allocator是分配器用于内存管理

二、 构造函数

构造函数有以上四种,分别是默认构造、填充构造、迭代器构造和拷贝构造

  • 默认构造

  • 填充构造

解读参数:n是填充的个数,val是填充的内容,val后面给了缺省值可以调每个类型的默认构造函数(在下一篇文章的vector的模拟实现中会详细解答)

  • 迭代器范围构造

  • 拷贝构造

三、赋值操作

operator=

既可以自己给自己进行赋值,又可以用已经创造的vector给自己进行赋值,局限就是不能进行局部赋值

assign

既可以通过区间进行赋值,又可以通过填充进行赋值,正好补充了operator的局部赋值,使得赋值体系更完整


四、容量和大小

  • size

  • capacity

  • empty

  • resize

  • reserve





size:计算vector中的元素个数
capacity:计算vector的大小
empty:判断vector是否为空,为空返回false,不为空返回ture
resize(重点):
        如果capacity()>n>size(),在size到n的范围用val进行填充
        如果n<size(),相当于删除vector中n以后的数据
        如果n>capacity(),先进行扩容,然后将val从size()开始填充到n
reserve(重点):提前开辟空间,进行空间的预留
        如果n>capacity,则进行空间的开辟,否则无变化

五、插入和删除

  • push_back

  • pop_back

  • insert

  • erase




push_back:将数据val进行尾插
pop_back:将vector中的最后一个元素进行删除
insert(重点):
        单个插入:在position位置,插入数据val
        填充插入:在position到position+n的范围依次插入val
        范围插入:从position位置开始插入范围first到last的内容
erase(重点):
        单个删除:删除position位置的数据
        范围删除:删除从first位置到last位置的数据

六、vector的数据存取

  • operator[ ]

  • at

  • front

  • back




operator[ ](重点):用于获取vector下标为n的位置的元素
at:  和operator相同,用于获取vector下标为n位置的元素,与之不同的是at会进行严格的边界判             断,如果越界则会抛异常
front:  获取vector中的首个元素
back:  获取vector中的最后一个元素

七、其他操作

  • swap

  • clear



swap: 用x交换容器内的内容,x必须和容器具有相同类型,大小和容量可以不相同
clear: 清除容器中的内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值