C++ vector探索

stl容器之vector

需要了解:实现细节,扩容机制,如何插入元素、消除元素,一些操作的时间复杂度等。

vector(mingw-8.1.0)的介绍

vector是序列式容器,动态扩容,比之array更加灵活。对于序列式容器而言,扩容有以下操作:配置新空间、移动数据、释放旧空间,所以扩容机制需要更合理的策略。

vector的迭代器

迭代器类型:Random Access,因为其维护的是连续线性空间,与raw pointer一样支持各种操作。注意,vector中的push_back、insert、erase等操作都可能使先前获得的迭代器失效。

vector的数据结构

数据结构:线性连续空间。其内部具有三个迭代器。在mingw中,其内部有名为_Vector_impl的底层实现:

请添加图片描述

其中start指向使用空间的头,finish指向使用空间的尾,end_of_storage指向可用空间的尾。begin操作如下,iterator目的是将非类的迭代器(例如指针)转换为类的迭代器,里面定义了很多类型,且重载了各种操作符来支持不同迭代器类型。

请添加图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值