天天看点

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

layout: post

title: 侯捷STL学习(七)

date: 2017-06-13

tag: 侯捷STL

第十六节 深度探索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

C/C++基本语法学习

STL

C++ primer