图书介绍
深入实践C++模板编程PDF|Epub|txt|kindle电子书版本下载
- 温宇杰著 著
- 出版社: 北京:机械工业出版社
- ISBN:9787111427544
- 出版时间:2013
- 标注页数:301页
- 文件大小:64MB
- 文件页数:317页
- 主题词:C语言-程序设计
PDF下载
下载说明
深入实践C++模板编程PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第一部分 模板基础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 Template13
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 变长数组vector82
6.2.2 双向链表list84
6.2.3 双端序列deque85
6.3 容器转换器87
6.3.1 栈stack与队列queue87
6.3.2 优先队列priority_queue88
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 整数值专用集合bitset98
6.5 散列表容器99
6.5.1 基本数据结构99
6.5.2 散列函数100
6.5.3 桶101
6.6 其他C++11新容器104
6.6.1 定长数组array104
6.6.2 单向链表forward list105
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_limits209
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 关键字noexcept265
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_ptr297
16.5.2 共享指针shared_ptr与weak_ptr298
16.6 基于范围的for循环299
16.7 拾遗300
16.8 本章小结301