STL中的Vector的简单原理

本文介绍了STL中的动态数组容器Vector,包括其常用函数如begin(), end(), rbegin(), rend(), erase(), clear(), front(), back(), push_back(), pop_back(), insert()等。Vector内部内存是连续的,支持随机访问,当空间不足时,会按一定比例扩展。与Vector相似的容器是deque,提供双向插入和存储。通过size和capacity管理元素数量和最大存储能力。" 111528847,10293402,Python模拟登录与爬取:百度搜索与智联招聘案例,"['Python', '网络爬虫', '数据抓取', 'Web开发', '百度API']
摘要由CSDN通过智能技术生成

    STL中提供了一个非常好用的动态数组模板vector,vector一般有下面的集中函数

   begin():返回指向容器中第一个元素的迭代器。

  end():返回指向容器中最后一个元素后面的位置的迭代器。

  rbegin():返回指向容器中最后一个元素的反向迭代器。

  rend():返回指向容器中第一个元素前面的位置的反向迭代器。

   erase(...):从容器中删除!

  clear():从容器中删除所有元素。

   front():返回容器中第一个元素的引用。

   back():返回容器中最后一个元素的引用。

   push_back():在容器末尾增加新元素。

   pop_back():删除容器末尾的元素。

   insert(...):插入一个或多个元素。

  vector 可以想数组一样直接进行地质访问,也可以用迭代器进行迭代访问。主要的原因是vector的内部的内存是连续的,不像list一样是个链表无法做到随机访问。同时vector的内存大小可以动态的扩充。原理是每次使用vector声明一个对象的时候,会自动申请一定的连续的空间。当空间用完的时候,会自动的进行两倍或者是略微小于2倍的扩充,(小于2的原因是,每次新申请的空间可以利用之前释放的空间,当大于等于2的时候是做不到的。可以通过等比公式计算)。新申请的空间后,会将数据完整的复制拷贝过来。

    和vector比较类似的是deque双向的队列,也是连续的内存,同时支持头部和尾部的双向插入和存储。实现的原理是类似的。

   vector的定义可以如下:

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值