侯捷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
C/C++基本语法学习
STL
C++ primer