《C++泛型 STL原理和应用》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:任哲,房红征,张永忠编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2016
  • ISBN:9787302421757
  • 页数:343 页
图书介绍:以C++模板技术为基础,以stl库源代码为蓝本,用模拟代码方式介绍了容器、迭代器、通用算法和适配器的基本概念和实际应用方法,最后又简单地介绍了容器的内存分配。以期使学生能在代码层次上了解stl的结构和原理,从而为学生能更好地使用stl相关组件来解决自己的实际问题奠定基础。

第1章 C++泛型技术基础——模板 1

1.1 泛型与模板 1

1.1.1 泛型的基本概念 1

1.1.2 C++模板及其定义 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.5 STL中的Traits表 54

第3章 STL及其使用的其他C++技术 61

3.1 初识STL 61

3.1.1 STL是C++标准库中的模板类库 61

3.1.2 STL应用程序示例 61

3.2 STL常用的C++技术 65

3.2.1 运算符重载 66

3.2.2 函数对象(仿函数) 72

3.2.3 lambda表达式 74

3.3 智能指针 80

3.3.1 智能指针的基本原理 81

3.3.2 C++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.4 STL迭代器的种类 115

4.2.5 迭代器的种类标记 116

4.2.6 STL对迭代器的管理 122

4.3 通用算法 125

第5章 容器及其应用 134

5.1 向量vector 134

5.2 列表list 141

5.3 双向队列deque 144

5.4 STL关联式容器 148

5.5 map容器 152

5.5.1 map容器的定义 152

5.5.2 map的数据插入 156

5.5.3 map容器的其他常用成员方法 160

5.5.4 multimap容器 164

5.6 set容器 165

5.7 hash表基础及hash容器 167

5.7.1 hash表基础 167

5.7.2 hash容器 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.2 STL容器适配器 258

7.2.1 stack适配器 259

7.2.2 queue适配器 264

7.2.3 priority_queue适配器 265

7.3 迭代器适配器 275

7.3.1 插入迭代器 275

7.3.2 反向迭代器 280

7.3.3 IO流迭代器 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.2 STL空间配置器接口 307

8.2.1 STL空间配置器接口及最简单的空间配置器 307

8.2.2 典型STL容器空间的配置 311

8.3 内存池的概念及应用 321

8.3.1 内存池的规划 321

8.3.2 内存池的设计 323

附录A 关于关键字explicit 338