点此搜书

当前位置:深入实践C++模板编程pdf电子书下载 > 工业技术
深入实践C++模板编程
  • 作 者:温宇杰著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2013
  • ISBN:9787111427544
  • 标注页数:301 页
  • PDF页数:317 页
  • 请阅读订购服务说明与试读!

文档类型

价格(积分)

购买连接

试读

PDF格式

11

立即购买

点击试读

订购服务说明

1、本站所有的书默认都是PDF格式,该格式图书只能阅读和打印,不能再次编辑。

2、除分上下册或者多册的情况下,一般PDF页数一定要大于标注页数才建议下单购买。【本资源317 ≥301页】

图书下载及付费说明

1、所有的电子图书为PDF格式,支持电脑、手机、平板等各类电子设备阅读;可以任意拷贝文件到不同的阅读设备里进行阅读。

2、电子图书在提交订单后一般半小时内处理完成,最晚48小时内处理完成。(非工作日购买会延迟)

3、所有的电子图书都是原书直接扫描方式制作而成。

第一部分 模板基础 2

第1章 Hello模板 2

1.1 为什么需要模板 2

1.2 初识函数模板 3

1.2.1 函数模板的实现 3

1.2.2 如何使用函数模板 4

1.2.3 模板参数自动推导 5

1.2.4 模板参数默认值 7

1.2.5 模板函数的静态变量 8

1.3 如何处理函数模板中的函数体 8

1.3.1 HPP文件还是CPP文件 9

1.3.2 链接器如何识别重复模板实例 10

1.4 尴尬的Export Template 13

1.4.1 什么是外名模板 13

1.4.2 C++编译器对外名模板的处理 14

1.5 本章小结 15

第2章 类亦模板 16

2.1 类型无关的数据结构 16

2.2 实践——栈类模板 17

2.2.1 栈类模板实例 17

2.2.2 栈类模板衍生子类模板实例 20

2.3 突破——异质链表 21

2.4 构造元组 23

2.4.1 通过嵌套实现元组 23

2.4.2 用类实现元组 24

2.5 类模板的用法 25

2.5.1 成员函数模板 25

2.5.2 友元函数模板 26

2.6 类模板的静态成员 27

2.7 本章小结 30

第3章 模板参数类型详解 31

3.1 整数模板参数 31

3.2 函数指针模板参数 32

3.3 指针及引用模板参数 34

3.4 成员函数指针模板参数 35

3.5 模板型模板参数 37

3.6 本章小结 39

第4章 凡事总有“特例” 40

4.1 从vector<bool>说起 40

4.2 特例的多种写法 44

4.3 特例匹配规则 46

4.4 函数模板的特例与重载 47

4.4.1 分辨重载 50

4.4.2 编译期的条件判断逻辑 52

4.5 本章小结 54

第二部分 标准库中的模板 56

第5章 容器、迭代器与算法 56

5.1 容器的定义 56

5.2 容器的实现 56

5.2.1 Java的实现方法 57

5.2.2 C++的实现方法 60

5.3 容器与迭代器 62

5.3.1 链表容器与迭代器 64

5.3.2 集合容器与迭代器 67

5.4 迭代器与算法 71

5.4.1 求容器中元素之和 71

5.4.2 实例:微型算法库 73

5.5 容器与迭代器的分类 75

5.6 容器与算法的关系 76

5.7 迭代器的陷阱 76

5.8 本章小结 77

第6章 标准库中的容器 79

6.1 容器的分类及基本要求 79

6.2 序列型容器 81

6.2.1 变长数组vector 82

6.2.2 双向链表list 84

6.2.3 双端序列deque 85

6.3 容器转换器 87

6.3.1 栈stack与队列queue 87

6.3.2 优先队列priority_queue 88

6.4 关联型容器 89

6.4.1 基本数据结构 89

6.4.2 内嵌类型定义 92

6.4.3 构造关联型容器 92

6.4.4 插入数据 93

6.4.5 数据的删除、查找与访问 96

6.4.6 整数值专用集合bitset 98

6.5 散列表容器 99

6.5.1 基本数据结构 99

6.5.2 散列函数 100

6.5.3 桶 101

6.6 其他C++11新容器 104

6.6.1 定长数组array 104

6.6.2 单向链表forward list 105

6.7 本章小结 106

第7章 隐形的助手——分配器 107

7.1 分配器的基本要求 107

7.2 交换容器内容时的特殊处理 110

7.3 有态分配器与无态分配器 112

7.4 实践:池分配器 114

7.4.1 池分配器模板类的设计 115

7.4.2 对象池的实现 116

7.4.3 定位构造 121

7.4.4 池分配器的实现 122

7.4.5 测试池分配器 127

7.4.6 实际运行 129

7.5 本章小结 131

第8章 标准库中的迭代器 132

8.1 迭代器分类 132

8.1.1 输入迭代器 132

8.1.2 前向迭代器 133

8.1.3 双向迭代器与跳转迭代器 135

8.1.4 输出迭代器 136

8.2 迭代器属性类模板 137

8.3 迭代器转换器 139

8.3.1 反转迭代器 139

8.3.2 插入迭代器 141

8.4 流迭代器 142

8.5 本章小结 144

第9章 标准库中的算法 145

9.1 算法的共同特征 145

9.2 标准库中的常用算法 145

9.2.1 foreach的三种写法 146

9.2.2 搜索 147

9.2.3 计数与比较 149

9.2.4 复制、交换、替换与删除 149

9.2.5 排序 151

9.2.6 二分搜索 151

9.2.7 集合运算 152

9.2.8 二叉堆操作 154

9.2.9 其他算法 154

9.3 预设函数对象 155

9.3.1 函数对象基类 155

9.3.2 运算函数对象 156

9.3.3 参数绑定 157

9.4 实践:矩阵操作中如何消除循环语句 165

9.4.1 跨跃迭代器 165

9.4.2 矩阵类模板 167

9.4.3 累计迭代器 169

9.4.4 矩阵乘法 170

9.4.5 矩阵LU分解 171

9.4.6 组合迭代器 172

9.4.7 没有循环语句的矩阵乘法 177

9.5 本章小结 178

第三部分 模板编程高级技巧 180

第10章 专用名词——概念 180

10.1 模板的先天不足 180

10.2 “概念”的提案及ConceptGCC编译器 181

10.3 概念语法 183

10.3.1 定义概念 183

10.3.2 用概念约束模板参数 184

10.3.3 概念映射 184

10.4 概念模拟库 186

10.4.1 概念检查宏 187

10.4.2 自定义概念检查 189

10.4.3 概念典型 190

10.5 本章小结 191

第11章 代码膨胀 192

11.1 源代码的增加 192

11.1.1 代理类的困境 192

11.1.2 D语言的方法 195

11.2 目标代码的增加 196

11.2.1 目标代码膨胀的成因 196

11.2.2 目标代码膨胀实例 197

11.2.3 改进代码 198

11.2.4 测试改进效果 206

11.3 本章小结 208

第12章 常用模板编程技巧 209

12.1 标签与特性 209

12.1.1 特性类模板numeric_limits 209

12.1.2 实例:矩阵与向量乘法 211

12.2 编译期多态 213

12.2.1 全覆盖的函数模板 213

12.2.2 虚函数的启发 213

12.2.3 虚基类模板 214

12.3 策略 217

12.3.1 策略的产生:再说vector的不足 217

12.3.2 为vector添加存储策略 218

12.4 伪变长参数模板 223

12.4.1 hetero node的启发 224

12.4.2 编译期递归 225

12.4.3 访问元组中的数据 227

12.5 本章小结 230

第13章 元编程 231

13.1 C++中的元编程 231

13.2 元函数 231

13.2.1 元函数的实现 231

13.2.2 元函数的调用 233

13.3 元容器与元算法 235

13.3.1 元容器的实现 235

13.3.2 实例:容纳5种类型的元容器 236

13.4 类型过滤 240

13.4.1 类型过滤元函数的实现 240

13.4.2 实例:应用元容器与元算法 242

13.5 本章小结 244

第四部分 模板与C++ 246

第14章 右值引用 246

14.1 右值引用的产生 246

14.1.1 函数的匿名返回值 246

14.1.2 返回值优化 249

14.2 右值引用基本概念 251

14.2.1 左值与非左值 251

14.2.2 右值与右值引用 252

14.2.3 移动构造与移动赋值 252

14.2.4 狭义与广义的右值 253

14.2.5 左值强制转义成右值引用 254

14.2.6 右值引用变量是左值 255

14.3 引用声明符消去规则 256

14.3.1 完美转发 256

14.3.2 实例:智能的min函数 260

14.4 移动与异常 263

14.4.1 迁移数据的风险 263

14.4.2 关键字noexcept 265

14.4.3 转义函数模板 267

14.4.4 移动的效率问题 268

14.5 本章小结 269

第15章 模板新语法 270

15.1 变长参数模板 270

15.1.1 参数包 271

15.1.2 参数包的内容 272

15.1.3 参数包的展开模式 273

15.1.4 遍历参数包的内容 274

15.1.5 轻松实现元组 275

15.2 扩展的类型推导机制 276

15.2.1 自动类型变量 277

15.2.2 提取表达式结果类型 278

15.2.3 函数后置返回类型 280

15.3 其他模板新特性 281

15.3.1 外部模板实例 281

15.3.2 模板别名 282

15.3.3 连续的右尖括号 282

15.4 本章小结 283

第16章 C++11新特性集锦 284

16.1 λ表达式 284

16.1.1 λ表达式语法 284

16.1.2 变量捕获 285

16.2 初值列表新用法 290

16.2.1 构造变量 290

16.2.2 初值封装类模板 291

16.3 标准容器与算法的变化 292

16.3.1 对应右值引用 292

16.3.2 对应变长参数模板 293

16.3.3 对应初值列表 294

16.4 标准元组类模板 294

16.5 智能指针 296

16.5.1 独占指针unique_ptr 297

16.5.2 共享指针shared_ptr与weak_ptr 298

16.6 基于范围的for循环 299

16.7 拾遗 300

16.8 本章小结 301

购买PDF格式(11分)
返回顶部