layout: post
title: 侯捷STL学习(七)
date: 2017-06-13
tag: 侯捷STL
第十六节 深度探索vector
vector
源码剖析
vector
-
内存2倍扩充,是在另外的地方重新申请内存,将数据搬过去vector
- 前闭后开区间
- 2倍扩充方法,reallocation
-
函数中再次判断,原因是可能有其他放元素的操作如insert_aux
insert
- 也要拷贝插入之后的数据,考虑到
插入某个位置,红色框部分insert
vector's iterator
vector's iterator
-
结点是连续的,vector
不需要是类,是个指针即可。iterator
- 算法问的五种相关类型,通过
实现iterator traits
- 通过指针偏特化
G4.9 vetor and iterator
G4.9 vetor and iterator
- 变得复杂,但是追踪其根源和G2.9本质一样。
第十七节 深度探索array和forward list
容器array
-
技术报告1 ,C++1.0-1998和c++2.0-2011之间的过渡版本TR1
- 源码很清晰,没有构造和析构函数;申明数组大小;用指针当迭代器
-
变得复杂G4.9
容器forward-list
C/C++基本语法学习
STL
C++ primer