Fork me on GitHub

侯捷STL学习(七)--深度探索vector&&array

第十六节 深度探索vector

vector源码剖析

  • vector内存2倍扩充,是在另外的地方重新申请内存,将数据搬过去

  • 前闭后开区间

  • 2倍扩充方法,reallocation

  • insert_aux函数中再次判断,原因是可能有其他放元素的操作如insert

  • 也要拷贝插入之后的数据,考虑到insert插入某个位置,红色框部分

vector's iterator

  • vector结点是连续的,iterator不需要是类,是个指针即可。
  • 算法问的五种相关类型,通过iterator traits实现
  • 通过指针偏特化

G4.9 vetor and iterator

  • 变得复杂,但是追踪其根源和G2.9本质一样。

第十七节 深度探索array和forward list

容器array

  • TR1技术报告1 ,C++1.0-1998和c++2.0-2011之间的过渡版本
  • 源码很清晰,没有构造和析构函数;申明数组大小;用指针当迭代器
  • G4.9变得复杂

容器forward-list

posted @ 2017-06-13 12:58  ranjiewen  阅读(678)  评论(1编辑  收藏  举报