第1章C++泛型技术基础——模板/1
1.1泛型与模板/1
1.1.1泛型的基本概念/1
1.1.2C++模板及其定义/3
1.1.3几点说明和小结/7
1.2关于模板参数/10
1.2.1模板参数的种类/10
1.2.2模板形参和实参的结合/14
1.3特化模板和模板具现规则/16
1.3.1特化(特例化)模板/16
1.3.2模板的具现/19
1.4右值引用与模板/22
1.4.1右值引用/22
1.4.2右值引用的应用1——转移
语义/25
1.4.3右值引用应用2——转移函数
move()/30
1.4.4右值引用应用3——参数完美转发
模板/31
第2章C++泛型机制的基石——数据类型表/39
2.1类模板的公有数据类型成员/39
2.1.1类的数据类型成员/39
2.1.2再谈typedef/41
2.2内嵌式数据类型表及数据类型衍生/42
2.3数据类型表/44
2.3.1数据类型表的概念/44
2.3.2数据类型表的应用/47
2.4特化数据类型表/51
2.5STL中的Traits表/54
第3章STL及其使用的其他C++技术/61
3.1初识STL/613.1.1STL是C++标准库中的模板
类库/61
3.1.2STL应用程序示例/61
3.2STL常用的C++技术/65
3.2.1运算符重载/66
3.2.2函数对象(仿函数)/72
3.2.3lambda表达式/74
3.3智能指针/80
3.3.1智能指针的基本原理/81
3.3.2C++11支持的智能指针/86
第4章模拟STL三大件/90
4.1容器/90
4.1.1向量vector的仿真MyVector/90
4.1.2列表list的仿真MyList/95
4.2迭代器/101
4.2.1使用裸指针作为迭代器/102
4.2.2迭代器是指针的类封装/105
4.2.3迭代器的代码隔离作用/112
4.2.4STL迭代器的种类/115
4.2.5迭代器的种类标记/116
4.2.6STL对迭代器的管理/122
4.3通用算法/125
第5章容器及其应用/134
5.1向量vector/134
5.2列表list/141
5.3双向队列deque/144
5.4STL关联式容器/148
5.5map容器/152
5.5.1map容器的定义/152
5.5.2map的数据插入/156
5.5.3map容器的其他常用成员
方法/160
5.5.4multimap容器/164
5.6set容器/165
5.7hash表基础及hash容器/167
5.7.1hash表基础/167
5.7.2hash容器/168
第6章通用算法/171
6.1通用算法的参数/171
6.1.1算法的迭代器参数/171
6.1.2辅助参数/179
6.1.3谓词参数/180
6.2算法时间复杂度/188
6.3常用通用算法/189
6.3.1查找和搜索算法/189
6.3.2变异算法/202
6.3.3排序算法/226
6.3.4算术算法与关系算法/241
6.3.5排列组合与集合算法/252
第7章适配器模式在STL基础部件上的应用/256
7.1适配器/256
7.2STL容器适配器/258
7.2.1stack适配器/259
7.2.2queue适配器/264
7.2.3priority_queue适配器/265
7.3迭代器适配器/275
7.3.1插入迭代器/275
7.3.2反向迭代器/280
7.3.3IO流迭代器/284
7.4函数对象适配器/291
7.4.1函数对象的适配/291
7.4.2函数对象配接器/294
第8章STL容器内存空间配置器/302
8.1内存空间配置器及其设计基础/302
8.1.1什么是内存空间配置器/302
8.1.2内存空间配置器设计基础/303
8.2STL空间配置器接口/307
8.2.1STL空间配置器接口及最简单
的空间配置器/307
8.2.2典型STL容器空间的配置/311
8.3内存池的概念及应用/321
8.3.1内存池的规划/321
8.3.2内存池的设计/323
附录A关于关键字explicit/338