0%

基本信息

名称: C++ Primer Plus中文版(第6版)
作者信息: 作者: 蒂芬•普拉达 (Stephen Prata) [ 中文 pdf ]

简单介绍

《C++ Primer Plus中文版(第6版)》是一本经久不衰的C++畅销经典教程,是第一本支持C++11新标准的程序设计图书,被誉为“开发人员学习C++的首选教程,没有之一”! Amazon网站“Language”类销售排名第三的超级畅销书,之前版本在美国销售超10万!

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
第1章 预备知识
1.1 C++简介
1.2 C++简史
1.2.1 C语言
1.2.2 C语言编程原理
1.2.3 面向对象编程
1.2.4 C++和泛型编程
1.2.5 C++的起源
1.3 可移植性和标准
1.3.1 C++的发展
1.3.2 本书遵循的C++标准
1.4 程序创建的技巧
1.4.1 创建源代码文件
1.4.2 编译和链接
1.5 总结
第2章 开始学习C++
2.1 进入C++
2.1.1 main()函数
2.1.2 C++注释
2.1.3 C++预处理器和iostream文件
2.1.4 头文件名
2.1.5 名称空间
2.1.6 使用cout进行C++输出
2.1.7 C++源代码的格式化
2.2 C++语句
2.2.1 声明语句和变量
2.2.2 赋值语句
2.2.3 cout的新花样
2.3 其他C++语句
2.3.1 使用cin
2.3.2 使用cout进行拼接
2.3.3 类简介
2.4 函数
2.4.1 使用有返回值的函数
2.4.2 函数变体
2.4.3 用户定义的函数
2.4.4 用户定义的有返回值的函数
2.4.5 在多函数程序中使用using编译指令
2.5 总结
2.6 复习题
2.7 编程练习
第3章 处理数据
3.1 简单变量
3.1.1 变量名
3.1.2 整型
3.1.3 整型short、int、long和long long
3.1.4 无符号类型
3.1.5 选择整型类型
3.1.6 整型字面值
3.1.7 C++如何确定常量的类型
3.1.8 char类型:字符和小整数
3.1.9 bool类型
3.2 const限定符
3.3 浮点数
3.3.1 书写浮点数
3.3.2 浮点类型
3.3.3 浮点常量
3.3.4 浮点数的优缺点
3.4 C++算术运算符
3.4.1 运算符优先级和结合性
3.4.2 除法分支
3.4.3 求模运算符
3.4.4 类型转换
3.4.5 C++11中的auto声明
3.5 总结
3.6 复习题
3.7 编程练习
第4章 复合类型
4.1 数组
4.1.1 程序说明
4.1.2 数组的初始化规则
4.1.3 C++11数组初始化方法
4.2 字符串
4.2.1 拼接字符串常量
4.2.2 在数组中使用字符串
4.2.3 字符串输入
4.2.4 每次读取一行字符串输入
4.2.5 混合输入字符串和数字
4.3 string类简介
4.3.1 C++11字符串初始化
4.3.2 赋值、拼接和附加
4.3.3 string类的其他操作
4.3.4 string类I/O
4.3.5 其他形式的字符串字面值
4.4 结构简介
4.4.1 在程序中使用结构
4.4.2 C++11结构初始化
4.4.3 结构可以将string类作为成员吗
4.4.4 其他结构属性
4.4.5 结构数组
4.4.6 结构中的位字段
4.5 共用体
4.6 枚举
4.6.1 设置枚举量的值
4.6.2 枚举的取值范围
4.7 指针和自由存储空间
4.7.1 声明和初始化指针
4.7.2 指针的危险
4.7.3 指针和数字
4.7.4 使用new来分配内存
4.7.5 使用delete释放内存
4.7.6 使用new来创建动态数组
4.8 指针、数组和指针算术
4.8.1 程序说明
4.8.2 指针小结
4.8.3 指针和字符串
4.8.4 使用new创建动态结构
4.8.5 自动存储、静态存储和动态存储
4.9 类型组合
4.10 数组的替代品
4.10.1 模板类vector
4.10.2 模板类array(C++11)
4.10.3 比较数组、vector对象和array对象
4.11 总结
4.12 复习题
4.13 编程练习
第5章 循环和关系表达式
5.1 for循环
5.1.1 for循环的组成部分
5.1.2 回到for循环
5.1.3 修改步长
5.1.4 使用for循环访问字符串
5.1.5 递增运算符(++)和递减运算符(——)
5.1.6 副作用和顺序点
5.1.7 前缀格式和后缀格式
5.1.8 递增/递减运算符和指针
5.1.9 组合赋值运算符
5.1.10 复合语句(语句块)
5.1.11 其他语法技巧——逗号运算符
5.1.12 关系表达式
5.1.13 赋值、比较和可能犯的错误
5.1.14 C—风格字符串的比较
5.1.15 比较string类字符串
5.2 while循环
5.2.1 for与while
5.2.2 等待一段时间:编写延时循环
5.3 do while循环
5.4 基于范围的for循环(C++11)
5.5 循环和文本输入
5.5.1 使用原始的cin进行输入
5.5.2 使用cin.get(char)进行补救
5.5.3 使用哪一个cin.get()
5.5.4 文件尾条件
5.5.5 另一个cin.get()版本
5.6 嵌套循环和二维数组
5.6.1 初始化二维数组
5.6.2 使用二维数组
5.7 总结
5.8 复习题
5.9 编程练习
第6章 分支语句和逻辑运算符
6.1 if语句
6.1.1 if else语句
6.1.2 格式化if else语句
6.1.3 if else if else结构
6.2 逻辑表达式
6.2.1 逻辑OR运算符:‖
6.2.2 逻辑AND运算符:&&
6.2.3 用&&来设置取值范围
6.2.4 逻辑NOT运算符:!
6.2.5 逻辑运算符细节
6.2.6 其他表示方式
6.3 字符函数库cctype
6.4 ?:运算符
6.5 switch语句
6.5.1 将枚举量用作标签
6.5.2 switch和if else
6.6 break和continue语句
6.7 读取数字的循环
6.8 简单文件输入/输出
6.8.1 文本I/O和文本文件
6.8.2 写入到文本文件中
6.8.3 读取文本文件
6.9 总结
6.10 复习题
6.11 编程练习
第7章 函数——C++的编程模块
7.1 复习函数的基本知识
7.1.1 定义函数
7.1.2 函数原型和函数调用
7.2 函数参数和按值传递
7.2.1 多个参数
7.2.2 另外一个接受两个参数的函数
7.3 函数和数组
7.3.1 函数如何使用指针来处理数组
7.3.2 将数组作为参数意味着什么
7.3.3 更多数组函数示例
7.3.4 使用数组区间的函数
7.3.5 指针和const
7.4 函数和二维数组
7.5 函数和C—风格字符串
7.5.1 将C—风格字符串作为参数的函数
7.5.2 返回C—风格字符串的函数
7.6 函数和结构
7.6.1 传递和返回结构
7.6.2 另一个处理结构的函数示例
7.6.3 传递结构的地址
7.7 函数和string对象
7.8 函数与array对象
7.9 递归
7.9.1 包含一个递归调用的递归
7.9.2 包含多个递归调用的递归
7.10 函数指针
7.10.1 函数指针的基础知识
7.10.2 函数指针示例
7.10.3 深入探讨函数指针
7.10.4 使用typedef进行简化
7.11 总结
7.12 复习题
7.13 编程练习
第8章 函数探幽
8.1 C++内联函数
8.2 引用变量
8.2.1 创建引用变量
8.2.2 将引用用作函数参数
8.2.3 引用的属性和特别之处
8.2.4 将引用用于结构
8.2.5 将引用用于类对象
8.2.6 对象、继承和引用
8.2.7 何时使用引用参数
8.3 默认参数
8.4 函数重载
8.4.1 重载示例
8.4.2 何时使用函数重载
8.5 函数模板
8.5.1 重载的模板
8.5.2 模板的局限性
8.5.3 显式具体化
8.5.4 实例化和具体化
8.5.5 编译器选择使用哪个函数版本
8.5.6 模板函数的发展
8.6 总结
8.7 复习题
8.8 编程练习
第9章 内存模型和名称空间
9.1 单独编译
9.2 存储持续性、作用域和链接性
9.2.1 作用域和链接
9.2.2 自动存储持续性
9.2.3 静态持续变量
9.2.4 静态持续性、外部链接性
9.2.5 静态持续性、内部链接性
9.2.6 静态存储持续性、无链接性
9.2.7 说明符和限定符
9.2.8 函数和链接性
9.2.9 语言链接性
9.2.10 存储方案和动态分配
9.3 名称空间
9.3.1 传统的C++名称空间
9.3.2 新的名称空间特性
9.3.3 名称空间示例
9.3.4 名称空间及其前途
9.4 总结
9.5 复习题
9.6 编程练习
第10章 对象和类
10.1 过程性编程和面向对象编程
10.2 抽象和类
10.2.1 类型是什么
10.2.2 C++中的类
10.2.3 实现类成员函数
10.2.4 使用类
10.2.5 修改实现
10.2.6 小结
10.3 类的构造函数和析构函数
10.3.1 声明和定义构造函数
10.3.2 使用构造函数
10.3.3 默认构造函数
10.3.4 析构函数
10.3.5 改进Stock类
10.3.6 构造函数和析构函数小结
10.4 this指针
10.5 对象数组
10.6 类作用域
10.6.1 作用域为类的常量
10.6.2 作用域内枚举(C++11)
10.7 抽象数据类型
10.8 总结
10.9 复习题
10.10 编程练习
第11章 使用类
11.1 运算符重载
11.2 计算时间:一个运算符重载示例
11.2.1 添加加法运算符
11.2.2 重载限制
11.2.3 其他重载运算符
11.3 友元
11.3.1 创建友元
11.3.2 常用的友元:重载11.4 重载运算符:作为成员函数还是非成员函数
11.5 再谈重载:一个矢量类
11.5.1 使用状态成员
11.5.2 为Vector类重载算术运算符
11.5.3 对实现的说明
11.5.4 使用Vector类来模拟随机漫步
11.6 类的自动转换和强制类型转换
11.6.1 转换函数
11.6.2 转换函数和友元函数
11.7 总结
11.8 复习题
11.9 编程练习
第12章 类和动态内存分配
12.1 动态内存和类
12.1.1 复习示例和静态类成员
12.1.2 特殊成员函数
12.1.3 回到Stringbad:复制构造函数的哪里出了问题
12.1.4 Stringbad的其他问题: 赋值运算符
12.2 改进后的新String类
12.2.1 修订后的默认构造函数
12.2.2 比较成员函数
12.2.3 使用中括号表示法访问字符
12.2.4 静态类成员函数
12.2.5 进一步重载赋值运算符
12.3 在构造函数中使用new时应注意的事项
12.3.1 应该和不应该
12.3.2 包含类成员的类的逐成员复制
12.4 有关返回对象的说明
12.4.1 返回指向const对象的引用
12.4.2 返回指向非const对象的引用
12.4.3 返回对象
12.4.4 返回const对象
12.5 使用指向对象的指针
12.5.1 再谈new和delete
12.5.2 指针和对象小结
12.5.3 再谈定位new运算符
12.6 复习各种技术
12.6.1 重载12.6.2 转换函数
12.6.3 其构造函数使用new的类
12.7 队列模拟
12.7.1 队列类
12.7.2 Customer类
12.7.3 ATM模拟
12.8 总结
12.9 复习题
12.10 编程练习
第13章 类继承
13.1 一个简单的基类
13.1.1 派生一个类
13.1.2 构造函数:访问权限的考虑
13.1.3 使用派生类
13.1.4 派生类和基类之间的特殊关系
13.2 继承:is—a关系
13.3 多态公有继承
13.4 静态联编和动态联编
13.4.1 指针和引用类型的兼容性
13.4.2 虚成员函数和动态联编
13.4.3 有关虚函数注意事项
13.5 访问控制:protected
13.6 抽象基类
13.6.1 应用ABC概念
13.6.2 ABC理念
13.7 继承和动态内存分配
13.7.1 第一种情况:派生类不使用new
13.7.2 第二种情况:派生类使用new
13.7.3 使用动态内存分配和友元的继承示例
13.8 类设计回顾
13.8.1 编译器生成的成员函数
13.8.2 其他的类方法
13.8.3 公有继承的考虑因素
13.8.4 类函数小结
13.9 总结
13.10 复习题
13.11 编程练习
……
第14章 C++中的代码重用
第15章 友元、异常和其他
第16章 string类和标准模板库
第17章 输入、输出和文件
第18章 探讨C++新标准
附录A 计数系统
附录B C++保留字
附录C ASCII字符集
附录D 运算符优先级
附录E 其他运算符
附录F 模板类string
附录G 标准模板库方法和函数
附录H 精选读物和网上资源
附录I 转换为ISO标准C++
附录J 复习题答案

亚马逊链接

基本信息

名称: Head First HTML5 Programming(英文版)
作者信息: 作者: 埃里克•弗里曼 (Eric Freeman) [ 英文 pdf ]

简单介绍

《Head First HTML5 Programming(中文版)》编辑推荐:HTML5是“Web的未来”,这种说法是不是听过很多次?如果你真的想了解构成HTML5的技术家族,读读弗里曼和罗布森编写的《Head First HTML5 Programming(中文版)》吧!《Head First HTML5 Programming(中文版)》是关于HTML5的权威指南,从初学者到有经验的开发人员都能从中受益。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
引子
1 认识HTML5:欢迎来到Web镇
2 介绍JavaScript和DOM:一点点代码
3 事件、处理程序,诸如此类:一点点交互
4 JavaScript函数和对象:正式JavaScript
5 实现HTML位置感知:地理定位
6 与Web交流:喜欢社交的应用
7 秀出你的艺术天份:画布
8 不再是父辈的老电视:视频……以及特邀演员“画布”
9 在本地存储:Web存储
10 运用javascript:Web工作线程
附录:(我们没有谈到的)十大主题
索引

亚马逊链接

基本信息

名称: HTML5秘籍
作者信息: 作者: Matthew MacDonald [ 中文 pdf ]

简单介绍

《HTML5秘籍》是Missing Manual系列图书经典著作,提供全面通俗的HTML5学习指南,《失控》作者凯文•凯利称《HTML5秘籍》是入门指南最为明智的选择。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
第一部分认识新语言
第1章HTML5简介
1.1 HTML5的故事
1.1.1 XHTML 1.0更严格的标准
1.1.2 XHTML 2:意想不到的失败
1.1.3 HTML5:起死回生
1.1.4HTML:活着的语言
1.2 HTML5的三个主要原理
1.2.1不破坏Web
1.2.2修补牛蹄子路
1.2.3实用至上
1.3 HTML5标记初体验
1.3.1 HTML5文档类型
1.3.2字符编码
1.3.3页面语言
1.3.4添加样式表
1.3.5添加JaVaScript
1.3.6最终结果
1.4 HTML5语法
1.4.1放松的规则
1.4.2 HTML5验证
1.4.3 XHTML的回归
1.5 HTML5元素家族
1.5.1新增的元素
1.5.2删除的元素
1.5.3改变的元素
1.5.4调整的元素
1.5.5标准化的元素
1.6今天开始用HTML5
1.6.1了解浏览器支持情况
1.6.2浏览器装机情况统计
1.6.3通过Modernizr检测功能
1.6.4使用腻子脚本”填补功能
缺陷
第2章构造网页的新方式
2.1语义元素
2.2改造传统的HTML页面
2.2.1构造页面的老办法
2.2.2使用HTML5构造页面_
2.2.3用 标注副标题 2.2.4用 添加插图 2.2.5用 添加附注 2.3浏览器对语义元素的支持情况 2.4使用语义元素设计站点 2.4.1理解 2.4.2用 标注导航链接 2.4.3理解 2.4.4理解区块 2.5 HTML5纲要 2.5.1如何查看纲要 2.5.2基本纲要 2.5.3分块元素 2.5.4解决一个纲要问题 第3章有意义的标记 3.1回顾语义元素 3.1.1使用标注日期和时间 3.1.2使用标注JavaScript返回值 3.1.3使用标注突显文本 3.2其他语义标准 3.2.1 ARIA 3.2.2 RDFa 3.2.3 Microformats 3.2.4 Microdata 3.3GOogle Rich Snippets 3.3.1增强搜索结果 3.3.2菜谱搜索引擎 第二部分制作新网页 第4章Web表单 4.1理解表单 4.2传统表单翻新 4.2.1通过占位符文本添加提示 4.2.2焦点:挑选正确的起点 4.3验证:阻止错误 4.3.1HTML5验证的原理 4.3.2关闭验证 4.3.3验证样式挂钩 4.3.4使用正则表达式 4.3.5自定义验证 4.3.6浏览器对验证的支持 4.4新的输入控件 4.4.1电子邮件地址 4.4.2网址 4.4.3搜索框 4.4.4电话号码 4.4.5数值 4.4.6滑动条 4.4.7日期和时间 4.4.8颜色 4.5新元素 4.5.1使用显示输入建议 4.5.2进度条和计量条 4.5.3使用和 创建工具条和菜单 4.6网页中的HTML编辑器 4.6.1使用contentEditable编辑元素 4.6.2使用designMode编辑页面 第5章音频与视频 5.1理解今天的视频 5.2 HTML5音频与视频 5.2.1使用 播放点噪音 5.2.2了解 5.3格式之争与后备措施 5.3.1谈谈格式 5.3.2浏览器对体格式的支持情况 5.3.3多种格式:如何讨好每一款浏览器 5.3.4使用元素 5.3.5以Flash作后备 5.4使用JavaScript控制播放器 5.4.1添加音效 5.4.2创建自定义视频播放器 5.4.3 JavaScript媒体播放器 5.4.4字幕与无障碍性 第6章基本Canvas绘图 6.1Canvas起步 6.1.1画直线 6.1.2路径与形状 6.1.3绘制曲线 6.1.4变换 6.1.5透明度 6.2构建基本的画图程序 6.2.1准备工作 6.2.2在画布上绘图 6.2.3将画布保存为图像 6.3浏览器对Canvas的支持情况 6.3.1填平补齐Canvas 6.3.2 Canvas后备及功能检测 第7章高级Canvas技术 7.1高级Canvas绘图 7.1.1绘制图像 7.1.2裁剪、切割和伸缩图片 7.1.3绘制文本 7.2阴影与填充 7.2.1添加阴影 7.2.2填充图案 7.2.3填充渐变 7.2.4综合示例:绘制图解 7.3赋予图形交互能力。 7.3.1记录绘制的内容 7.3.2基于坐标的碰撞检测 7.4给Canvas添加动画 7.4.1基本的动画 7.4.2多物体动画 7.5实例:迷宫游戏 7.5.1布置迷宫 7.5.2让笑脸动起来 7.5.3基于像素颜色的碰撞检测 第8章使用CSS3 8.1使用CSS3 8.1.1选择一:用能用的 8.1.2选择二:将CSS功能作为 增强 8.1.3选择三:Modemizr 8.1.4特定于浏览器的样式 8.2Web排版 8.2.1Web字体格式 8.2.2使用字体包 8.2.3使用谷歌的Web字体 8.2.4使用自己的字体 8.2.5多栏文本 8.3适用不同的设备 8.3.1媒体查询 8.3.2高级媒体查询 8.3.3替换整个样式表 8.3.4识别移动设备 8.4多变的盒子 8.4.1透明盒子 8.4.2圆角盒子 8.4.3背景盒子 8.4.4阴影盒子 8.4.5渐变盒子 8.5创建过渡效果 8.5.1基本的颜色过渡 8.5.2更多的过渡思路 8.5.3变换 第三部分构建桌面式Web应用 第9章数据存储 9.1Web存储简介 9.1.1存储数据 9.1.2实战:保存游戏中的最后位置 9.1.3浏览器对Web存储的支持情况 9.2深入Web存储 9.2.1删除数据项 9,2.2查找所有数据项 9.2.3保存数值和日期 9.2.4保存对象 9.2.5响应存储变化 9.3读取文件 9.3.1取得文件 9.3.2浏览器对File API的支持情况 9.3.3读取文本文件 9.3.4替换标准上传控件 9.3.5一次读取多个文件 9.3.6读取图片文件 第10章离线应用 10.1通过描述文件缓存资源 10.1.1创建描述文件 10.1.2使用描述文件 10.1.3把描述文件放到Web服务器 10.1.4更新描述文件 10.1.5浏览器对离线应用的支持情况 10.2实用缓存技术 10.2.1访问未缓存的文件 10.2.2添加后备内容 10.2.3检测连接 10.2.4通过JavaScript指定更新 第11章与Web服务器通信 11.1向Web服务器发送消息 11.1.1 XMLHttpRequest对象 11.1.2向Web服务器提问 11.1.3取得新内容 11.2服务器发送事件 11.2.1消息格式 11.2.2通过服务器脚本发送消息 11.2.3在网页中处理消息 11.2.4轮询服务器端事件 11.3Web Socket 11.3.1访问Web Socket 11.32简单的Web Socket客户端 11.3.3使用现成的Web Socket服务器 第12章更酷的JavaScript技术 12.1地理定位 12.1.1地理定位的基本原理 12.1.2查找访客的坐标 12.1.3处理错误 12.1.4设置地理定位选项 12.1.5显示地图 12.1.6跟踪访客移动 12.2 Web WOrkers 12.2.1费时的任务 12.2.2把任务放在后台 12.2.3处理Worker错误 12.2.4取消后台任务 12.2.5传递复杂消息 12.3历史管理 12.3.1URL问题 12.3.2以往的解决方案:Hashbang URL 12.3.3 HTML5的方案:会话历史 12.3.4浏览器对会话历史的支持情况 第四部分附录 附录A CSS简明教程 附录B JavaScript简明教程 </source></video></audio>

亚马逊链接

基本信息

名称: C++ GUI Qt 4编程(第2版)
作者信息: 作者: 布兰切特 (Jasmin Blanchette) [ 中文 pdf ]

简单介绍

《C++ GUI Qt 4编程(第2版)》讲授的大量Qt4编程原理和实践,都可以轻易将其应用于Qt4.4、Qt4.5及后续版本的Qt程序的开发过程中。《C++ GUI Qt 4编程(第2版)》适合对Qt编程感兴趣的程序员及广大计算机编程爱好者阅读,也可作为相关机构的培训教材。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
第一部分Qt基础
第1章Qt入门
1.1HelloQt
1.2建立连接
1.3窗口部件的布局
1.4使用参考文档
第2章创建对话框
2.1子类化QDialog
2.2深入介绍信号和槽
2.3快速设计对话框
2.4改变形状的对话框
2.5动态对话框
2.6内置的窗口部件类和对话框类
第3章创建主窗口
3.1子类化QMainWindow
3.2创建菜单和工具栏
3.3设置状态栏
3.4实现File菜单
3.5使用对话框
3.6存储设置
3.7多文档
3.8程序启动画面
第4章实现应用程序的功能
4.1中央窗口部件
4.2子类化QTableWidget
4.3载入和保存
4.4实现Edit菜单
4.5实现其他菜单
4.6子类化QTableWidgetItem
第5章创建自定义窗口部件
5.1自定义Qt窗口部件
5.2子类化QWidget
5.3在Qt设计师中集成自定义窗口部件
5.4双缓冲
第二部分Qt中级
第6章布局管理
6.1在窗体中摆放窗口部件
6.2分组布局
6.3切分窗口
6.4滚动区域
6.5停靠窗口和工具栏
6.6多文档界面
第7章事件处理
7.1重新实现事件处理器
7.2安装事件过滤器
7.3处理密集时的响应保持
第8章二维图形
8.1用QPainter绘图
8.2坐标系统变换
8.3用QImage高质量绘图
8.4基于项的图形视图
8.5打印
第9章拖放
9.1使拖放生效
9.2支持自定义拖动类型
9.3剪贴板处理技术
第10章项视图类
10.1使用项视图的简便类
10.2使用预定义模型
10.3实现自定义模型
10.4实现自定义委托
第11章容器类
11.1连续容器
11.2关联容器
11.3通用算法
11.4字符串、字节数组和变量
第12章输入与输出
12.1读取和写入二进制数据
12.2读取和写入文本
12.3遍历目录
12.4嵌入资源
12.5进程间通信
第13章数据库
13.1连接和查询
13.2查看表
13.3使用窗体编辑记录
13.4在表中显示数据
第14章多线程
14.1创建线程
14.2同步线程
14.3与主线程通信
14.4在次线程中使用Qt的类
第15章网络
15.1写FTP客户端
15.2写HTTP客户端
15.3写TCP客户/服务器应用程序
15.4发送和接收UDP数据报
第16章XML
16.1使用QXmlStreamReader读取XML
16.2用DOM读取XML
16.3使用SAX读取XML
16.4写入XML
第17章提供在线帮助
17.1工具提示、状态提示和“What’s This?”帮助
17.2利用Web浏览器提供在线帮助
17.3将QTextBrowser作为简单的帮助引擎
17.4使用QtAssistant提供强大的在线帮助
第三部分Qt高级
第18章国际化
18.1使用Unicode
18.2让应用程序感知翻译
18.3动态切换语言
18.4翻译应用程序
第19章自定义外观
19.1使用Qt样式表
19.2子类化QStyle
第20章三维图形
20.1使用OpenGL绘图
20.2OpenGL和QPainter的结合
20.3使用帧缓存对象生成叠加
第21章创建插件
21.1利用插件扩展Qt
21.2使应用程序感知插件
21.3编写应用程序的插件
第22章应用程序脚本
22.1ECMAScript语言概述
22.2使用脚本扩展Qt应用程序
22.3使用脚本实现GUI扩展
22.4使用脚本自动化处理任务
第23章平台相关特性
23.1连接本地的应用程序编程接口
23.2在Windows上使用ActiveX
23.3处理X11会话管理
第24章嵌入式编程
24.1从Qt/EmbeddedLinux开始
24.2自定义Qt/EmbeddedLinux
24.3Qt应用程序与Qtopia的集成
24.4使用Qtopia的API
第四部分附录
附录AQt的获取和安装
A.1协议说明
A.2Qt/Windows的安装
A.3Qt/Mac的安装
A.4Qt/X11的安装
附录B编译Qt应用程序
B.1使用qmake
B.2使用第三方编译工具
附录CQtJambi简介
C.1QtJambi入门
C.2在EclipseIDE中使用QtJambi
C.3在QtJambi中集成C++组件
附录D面向Java和C#程序员的C++简介
D.1C++入门
D.2主要语言之间的差异
D.3C++标准库

亚马逊链接

基本信息

名称: 深入理解C++11 C++11新特性解析与应用
作者信息: 作者: Michael Wong [ 中文 pdf ]

简单介绍

《深入理解C++11:C++11新特性解析与应用》编辑推荐:C++标准委员会成员和IBM XL编译器中国开发团队共同撰写,权威性毋庸置疑。系统、深入、详尽地讲解了C++11新标准中的新语言特性、新标准库特性、对原有特性的改进,以及所有这些新特性的应用。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
免责声明

前言
第1章新标准的诞生1
1.1曙光:C++11标准的诞生1
1.1.1C++11/C++0x(以及C11/C1x)——新标准诞生1
1.1.2什么是C++11/C++0x2
1.1.3新C++语言的设计目标3
1.2今时今日的C++5
1.2.1C++的江湖地位5
1.2.2C++11语言变化的领域5
1.3C++11特性的分类7
1.4C++特性一览11
1.4.1稳定性与兼容性之间的抉择11
1.4.2更倾向于使用库而不是扩展语言来实现特性12
1.4.3更倾向于通用的而不是特殊的手段来实现特性13
1.4.4专家新手一概支持13
1.4.5增强类型的安全性14
1.4.6与硬件紧密合作14
1.4.7开发能够改变人们思维方式的特性15
1.4.8融入编程现实16
1.5本书的约定17
1.5.1关于一些术语的翻译17
1.5.2关于代码中的注释17
1.5.3关于本书中的代码示例与实验平台18
第2章保证稳定性和兼容性19
2.1保持与C99兼容19
2.1.1预定义宏19
2.1.2_func预定义标识符20 2.1.3_Pragma操作符22 2.1.4变长参数的宏定义以及VA_ARGS_22
2.1.5宽窄字符串的连接23
2.2longlong整型23
2.3扩展的整型25
2.4宏_cplusplus26
2.5静态断言27
2.5.1断言:运行时与预处理时27
2.5.2静态断言与static_assert28
2.6noexcept修饰符与noexcept操作符32
2.7快速初始化成员变量36
2.8非静态成员的sizeof39
2.9扩展的friend语法40
2.10final/override控制44
2.11模板函数的默认模板参数48
2.12外部模板50
2.12.1为什么需要外部模板50
2.12.2显式的实例化与外部模板的声明52
2.13局部和匿名类型作模板实参54
2.14本章小结55
第3章通用为本,专用为末57
3.1继承构造函数57
3.2委派构造函数62
3.3右值引用:移动语义和完美转发68
3.3.1指针成员与拷贝构造68
3.3.2移动语义69
3.3.3左值、右值与右值引用75
3.3.4std:move:强制转化为右值80
3.3.5移动语义的一些其他问题82
3.3.6完美转发85
3.4显式转换操作符89
3.5列表初始化92
3.5.1初始化列表92
3.5.2防止类型收窄96
3.6POD类型98
3.7非受限联合体106
3.8用户自定义字面量110
3.9内联名字空间113
3.10模板的别名118
3.11一般化的SFINEA规则119
3.12本章小结121
第4章新手易学,老兵易用123
4.1右尖括号>的改进123
4.2auto类型推导124
4.2.1静态类型、动态类型与类型推导124
4.2.2auto的优势126
4.2.3auto的使用细则130
4.3decltype134
4.3.1typeid与decltype134
4.3.2decltype的应用136
4.3.3decltype推导四规则140
4.3.4cv限制符的继承与冗余的符号143
4.4追踪返回类型145
4.4.1追踪返回类型的引入145
4.4.2使用追踪返回类型的函数146
4.5基于范围的for循环150
4.6本章小结153
第5章提高类型安全155
5.1强类型枚举155
5.1.1枚举:分门别类与数值的名字155
5.1.2有缺陷的枚举类型156
5.1.3强类型枚举以及C++11对原有枚举类型的扩展160
5.2堆内存管理:智能指针与垃圾回收163
5.2.1显式内存管理163
5.2.2C++11的智能指针164
5.2.3垃圾回收的分类167
5.2.4C++与垃圾回收169
5.2.5C++11与最小垃圾回收支持170
5.2.6垃圾回收的兼容性172
5.3本章小结173
第6章提高性能及操作硬件的能力174
6.1常量表达式174
6.1.1运行时常量性与编译时常量性174
6.1.2常量表达式函数176
6.1.3常量表达式值178
6.1.4常量表达式的其他应用180
6.2变长模板183
6.2.1变长函数和变长的模板参数183
6.2.2变长模板:模板参数包和函数参数包185
6.2.3变长模板:进阶189
6.3原子类型与原子操作196
6.3.1并行编程、多线程与C++11196
6.3.2原子操作与C++11原子类型197
6.3.3内存模型,顺序一致性与memory_order203
6.4线程局部存储214
6.5快速退出:quick_exit与at_quick_exit216
6.6本章小结219
第7章为改变思考方式而改变220
7.1指针空值—nullptr220
7.1.1指针空值:从0到NULL,再到nullptr220
7.1.2nullptr和nullptr_t223
7.1.3一些关于nullptr规则的讨论225
7.2默认函数的控制227
7.2.1类与默认函数227
7.2.2“=default”与“=deleted”230
7.3lambda函数234
7.3.1lambda的一些历史234
7.3.2C++11中的lambda函数235
7.3.3lambda与仿函数238
7.3.4lambda的基础使用240
7.3.5关于lambda的一些问题及有趣的实验243
7.3.6lambda与STL247
7.3.7更多的一些关于lambda的讨论254
7.4本章小结256
第8章融入实际应用258
8.1对齐支持258
8.1.1数据对齐258
8.1.2C++11的alignof和alignas261
8.2通用属性267
8.2.1语言扩展到通用属性267
8.2.2C++11的通用属性268
8.2.3预定义的通用属性270
8.3Unicode支持274
8.3.1字符集、编码和Unicode274
8.3.2C++11中的Unicode支持276
8.3.3关于Unicode的库支持280
8.4原生字符串字面量284
8.5本章小结286
附录AC++11对其他标准的不兼容项目287
附录B弃用的特性294
附录C编译器支持301
附录D相关资源304

亚马逊链接

基本信息

名称: C#图解教程(第4版)
作者信息: 作者: 索利斯 (Daniel M.Solis) [ 中文 pdf ]

简单介绍

大家时间都很宝贵,三分钟就能理解的技术细节,干嘛要花三个小时?!C#图解教程(第4版)被誉为C#入门图书中的“神书”,是高效、深入掌握C#的不二之选!“想通过学习C#为你的编程生涯打下坚实的基础?这本书是我发自内心推荐给你的。”为什么那么多C#学习者对《C#图解教程》有口皆碑,令这本书一版再版,长销不衰?因为作者创造了一种全新的可视化叙述方式。他在书中通过把大量的图、表和代码片段有机结合,把很多同类书需要好几页才能讲清楚的技术细节,形象、直观、一目了然地呈现在读者眼前。不管你信不信,很多技术细节只有通过图示才能讲得这么清晰、透彻!

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
第1章 C#和.NET框架 1
1.1 在.NET之前 1
1.1.1 20世纪90年代末的Windows编程 1
1.1.2 下一代平台服务的目标 2
1.2 .NET时代 2
1.2.1 .NET框架的组成 2
1.2.2 大大改进的编程环境 3
1.3 编译成CIL 5
1.4 编译成本机代码并执行 6
1.5 CLR 7
1.6 CLI 8
1.7 各种缩写 9
1.8 C#的演化 9
第2章 C#编程概述 10
2.1 一个简单的C#程序 10
2.2 标识符 12
2.3 关键字 12
2.4 Main:程序的起始点 13
2.5 空白 13
2.6 语句 14
2.7 从程序中输出文本 15
2.7.1 Write 15
2.7.2 WriteLine 15
2.7.3 格式字符串 16
2.7.4 多重标记和值 16
2.7.5 格式化数字字符串 17
2.8 注释:为代码添加注解 20
2.8.1 关于注释的补充 21
2.8.2 文档注释 21
2.8.3 注释类型总结 22
第3章 类型、存储和变量 23
3.1 C#程序是一组类型声明 23
3.2 类型是一种模板 24
3.3 实例化类型 24
3.4 数据成员和函数成员 25
3.5 预定义类型 26
3.6 用户定义类型 27
3.7 栈和堆 28
3.7.1 栈 28
3.7.2 堆 29
3.8 值类型和引用类型 30
3.8.1 存储引用类型对象的成员 31
3.8.2 C#类型的分类 31
3.9 变量 32
3.9.1 变量声明 32
3.9.2 多变量声明 34
3.9.3 使用变量的值 34
3.10 静态类型和dynamic关键字 34
3.11 可空类型 35
第4章 类的基本概念 36
4.1 类的概述 36
4.2 程序和类:一个快速示例 37
4.3 声明类 38
4.4 类成员 38
4.4.1 字段 38
4.4.2 方法 40
4.5 创建变量和类的实例 41
4.6 为数据分配内存 41
4.7 实例成员 42
4.8 访问修饰符 43
4.9 从类的内部访问成员 45
4.10 从类的外部访问成员 46
4.11 综合应用 47
第5章 方法 49
5.1 方法的结构 49
5.2 方法体内部的代码执行 50
5.3 本地变量 51
5.3.1 类型推断和var关键字 52
5.3.2 嵌套块中的本地变量 52
5.4 本地常量 53
5.5 控制流 54
5.6 方法调用 55
5.7 返回值 56
5.8 返回语句和void方法 57
5.9 参数 59
5.9.1 形参 59
5.9.2 实参 59
5.10 值参数 61
5.11 引用参数 63
5.12 引用类型作为值参数和引用参数 65
5.13 输出参数 68
5.14 参数数组 70
5.14.1 方法调用 71
5.14.2 用数组作为实参 73
5.15 参数类型总结 74
5.16 方法重载 74
5.17 命名参数 75
5.18 可选参数 76
5.19 栈帧 79
5.20 递归 81
第6章 深入理解类 83
6.1 类成员 83
6.2 成员修饰符的顺序 84
6.3 实例类成员 85
6.4 静态字段 86
6.5 从类的外部访问静态成员 86
6.5.1 静态字段示例 87
6.5.2 静态成员的生存期 87
6.6 静态函数成员 88
6.7 其他静态类成员类型 89
6.8 成员常量 90
6.9 常量与静态量 90
6.10 属性 91
6.10.1 属性声明和访问器 92
6.10.2 属性示例 93
6.10.3 使用属性 94
6.10.4 属性和关联字段 94
6.10.5 执行其他计算 96
6.10.6 只读和只写属性 96
6.10.7 属性与公共字段 97
6.10.8 计算只读属性示例 97
6.10.9 自动实现属性 98
6.10.10 静态属性 99
6.11 实例构造函数 100
6.11.1 带参数的构造函数 101
6.11.2 默认构造函数 102
6.12 静态构造函数 102
6.13 对象初始化语句 104
6.14 析构函数 105
6.15 readonly修饰符 105
6.16 this关键字 106
6.17 索引器 107
6.17.1 什么是索引器 108
6.17.2 索引器和属性 108
6.17.3 声明索引器 109
6.17.4 索引器的set访问器 110
6.17.5 索引器的get访问器 110
6.17.6 关于索引器的补充 111
6.17.7 为Employee示例声明索引器 111
6.17.8 另一个索引器的示例 112
6.17.9 索引器重载 113
6.18 访问器的访问修饰符 114
6.19 分部类和分部类型 115
6.20 分部方法 116
第7章 类和继承 118
7.1 类继承 118
7.2 访问继承的成员 119
7.3 所有类都派生自object类 120
7.4 屏蔽基类的成员 121
7.5 基类访问 123
7.6 使用基类的引用 124
7.6.1 虚方法和覆写方法 125
7.6.2 覆写标记为override的方法 127
7.6.3 覆盖其他成员类型 130
7.7 构造函数的执行 130
7.7.1 构造函数初始化语句 132
7.7.2 类访问修饰符 134
7.8 程序集间的继承 134
7.9 成员访问修饰符 136
7.9.1 访问成员的区域 137
7.9.2 公有成员的可访问性 138
7.9.3 私有成员的可访问性 138
7.9.4 受保护成员的可访问性 138
7.9.5 内部成员的可访问性 139
7.9.6 受保护内部成员的可访问性 139
7.9.7 成员访问修饰符小结 140
7.10 抽象成员 141
7.11 抽象类 142
7.11.1 抽象类和抽象方法的示例 142
7.11.2 抽象类的另一个例子 143
7.12 密封类 144
7.13 静态类 144
7.14 扩展方法 145
7.15 命名约定 148
第8章 表达式和运算符 150
8.1 表达式 150
8.2 字面量 151
8.2.1 整数字面量 152
8.2.2 实数字面量 153
8.2.3 字符字面量 153
8.2.4 字符串字面量 154
8.3 求值顺序 156
8.3.1 优先级 156
8.3.2 结合性 157
8.4 简单算术运算符 157
8.5 求余运算符 158
8.6 关系比较运算符和相等比较运算符 159
8.7 递增运算符和递减运算符 160
8.8 条件逻辑运算符 162
8.9 逻辑运算符 163
8.10 移位运算符 164
8.11 赋值运算符 165
8.12 条件运算符 167
8.13 一元算术运算符 168
8.14 用户定义的类型转换 169
8.15 运算符重载 172
8.15.1 运算符重载的限制 172
8.15.2 运算符重载的示例 173
8.16 typeof运算符 174
8.17 其他运算符 176
第9章 语句 177
9.1 什么是语句 177
9.2 表达式语句 178
9.3 控制流语句 179
9.4 if语句 179
9.5 if…else语句 180
9.6 while循环 181
9.7 do循环 182
9.8 for循环 183
9.8.1 for语句中变量的作用域 185
9.8.2 初始化和迭代表达式中的多表达式 185
9.9 switch语句 186
9.9.1 分支示例 187
9.9.2 switch语句的补充 188
9.9.3 分支标签 189
9.10 跳转语句 189
9.11 break语句 190
9.12 continue语句 190
9.13 标签语句 191
9.13.1 标签 191
9.13.2 标签语句的作用域 192
9.14 goto语句 192
9.15 using语句 193
9.15.1 资源的包装使用 194
9.15.2 using语句的示例 195
9.15.3 多个资源和嵌套 196
9.15.4 using语句的另一种形式 197
9.16 其他语句 197
第10章 结构 198
10.1 什么是结构 198
10.2 结构是值类型 199
10.3 对结构赋值 200
10.4 构造函数和析构函数 201
10.4.1 实例构造函数 201
10.4.2 静态构造函数 202
10.4.3 构造函数和析构函数小结 203
10.5 字段初始化语句是不允许的 203
10.6 结构是密封的 203
10.7 装箱和拆箱 203
10.8 结构作为返回值和参数 204
10.9 关于结构的其他信息 204
第11章 枚举 205
11.1 枚举 205
11.1.1 设置底层类型和显式值 206
11.1.2 隐式成员编号 207
11.2 位标志 208
11.2.1 Flags特性 210
11.2.2 使用位标志的示例 212
11.3 关于枚举的补充 213
第12章 数组 216
12.1 数组 216
12.1.1 定义 216
12.1.2 重要细节 217
12.2 数组的类型 217
12.3 数组是对象 218
12.4 一维数组和矩形数组 219
12.5 实例化一维数组或矩形数组 220
12.6 访问数组元素 220
12.7 初始化数组 221
12.7.1 显式初始化一维数组 222
12.7.2 显式初始化矩形数组 222
12.7.3 初始化矩形数组的语法点 223
12.7.4 快捷语法 223
12.7.5 隐式类型数组 223
12.7.6 综合内容 224
12.8 交错数组 224
12.8.1 声明交错数组 225
12.8.2 快捷实例化 225
12.8.3 实例化交错数组 226
12.8.4 交错数组中的子数组 227
12.9 比较矩形数组和交错数组 228
12.10 foreach语句 229
12.10.1 迭代变量是只读的 230
12.10.2 foreach语句和多维数组 231
12.11 数组协变 232
12.12 数组继承的有用成员 233
12.13 比较数组类型 236
第13章 委托 237
13.1 什么是委托 237
13.2 委托概述 239
13.3 声明委托类型 240
13.4 创建委托对象 241
13.5 给委托赋值 242
13.6 组合委托 243
13.7 为委托添加方法 243
13.8 从委托移除方法 244
13.9 调用委托 244
13.10 委托的示例 245
13.11 调用带返回值的委托 246
13.12 调用带引用参数的委托 247
13.13 匿名方法 248
13.13.1 使用匿名方法 249
13.13.2 匿名方法的语法 249
13.13.3 变量和参数的作用域 250
13.14 Lambda表达式 252
第14章 事件 255
14.1 发布者和订阅者 255
14.2 源代码组件概览 257
14.3 声明事件 257
14.4 订阅事件 258
14.5 触发事件 259
14.6 标准事件的用法 261
14.6.1 通过扩展EventArgs来传递数据 262
14.6.2 移除事件处理程序 264
14.7 事件访问器 265
第15章 接口 267
15.1 什么是接口 267
15.2 声明接口 272
15.3 实现接口 273
15.4 接口是引用类型 275
15.5 接口和as运算符 276
15.6 实现多个接口 276
15.7 实现具有重复成员的接口 277
15.8 多个接口的引用 279
15.9 派生成员作为实现 280
15.10 显式接口成员实现 281
15.11 接口可以继承接口 283
15.12 不同类实现一个接口的示例 284
第16章 转换 286
16.1 什么是转换 286
16.2 隐式转换 287
16.3 显式转换和强制转换 288
16.4 转换的类型 289
16.5 数字的转换 290
16.5.1 隐式数字转换 290
16.5.2 溢出检测上下文 291
16.5.3 显式数字转换 292
16.6 引用转换 295
16.6.1 隐式引用转换 296
16.6.2 显式引用转换 297
16.6.3 有效显式引用转换 298
16.7 装箱转换 299
16.7.1 装箱是创建副本 300
16.7.2 装箱转换 300
16.8 拆箱转换 301
16.9 用户自定义转换 302
16.9.1 用户自定义转换的约束 302
16.9.2 用户自定义转换的示例 302
16.9.3 评估用户自定义转换 304
16.9.4 多步用户自定义转换的示例 304
16.10 is运算符 305
16.11 as运算符 30
第17章 泛型 308
17.1 什么是泛型 308
17.2 C#中的泛型 310
17.3 泛型类 311
17.4 声明泛型类 312
17.5 创建构造类型 312
17.6 创建变量和实例 313
17.6.1 使用泛型的栈的示例 315
17.6.2 比较泛型和非泛型栈 316
17.7 类型参数的约束 317
17.7.1 Where子句 317
17.7.2 约束类型和次序 318
17.8 泛型方法 319
17.8.1 声明泛型方法 319
17.8.2 调用泛型方法 320
17.8.3 泛型方法的示例 321
17.9 扩展方法和泛型类 322
17.10 泛型结构 323
17.11 泛型委托 323
17.12 泛型接口 325
17.12.1 使用泛型接口的示例 326
17.12.2 泛型接口的实现必须唯一 327
17.13 协变 328
17.14 逆变 330
17.14.1 接口的协变和逆变 332
17.14.2 有关可变性的更多内容 333
第18章 枚举器和迭代器 335
18.1 枚举器和可枚举类型 335
18.2 IEnumerator接口 337
18.3 泛型枚举接口 341
18.4 迭代器 343
18.4.1 迭代器块 343
18.4.2 使用迭代器来创建枚举器 344
18.4.3 使用迭代器来创建可枚举类型 346
18.5 常见迭代器模式 347
18.6 产生多个可枚举类型 348
18.7 将迭代器作为属性 349
18.8 迭代器实质 350
第19章 LINQ 352
19.1 什么是LINQ 352
19.2 LINQ提供程序 353
19.3 方法语法和查询语法 355
19.4 查询变量 356
19.5 查询表达式的结构 357
19.5.1 from子句 358
19.5.2 join子句 359
19.5.3 什么是联结 360
19.5.4 查询主体中的from let where片段 362
19.5.5 orderby子句 365
19.5.6 select group子句 366
19.5.7 查询中的匿名类型 367
19.5.8 group子句 368
19.5.9 查询延续:into子句 369
19.6 标准查询运算符 370
19.6.1 标准查询运算符的签名 373
19.6.2 查询表达式和标准查询运算符 374
19.6.3 将委托作为参数 375
19.6.4 LINQ预定义的委托类型 376
19.6.5 使用委托参数的示例 377
19.6.6 使用Lambda表达式参数的示例 378
19.7 LINQtoXML 379
19.7.1 标记语言 379
19.7.2 XML基础 379
19.7.3 XML类 381
19.7.4 使用XML特性 387
19.7.5 节点的其他类型 389
19.7.6 使用LINQtoXML的LINQ查询 390
第20章 异步编程 393
20.1 什么是异步 393
20.2 async/await特性的结构 398
20.3 什么是异步方法 399
20.3.1 异步方法的控制流 402
20.3.2 await表达式 404
20.3.3 取消一个异步操作 407
20.3.4 异常处理和await表达式 409
20.3.5 在调用方法中同步地等待任务 410
20.3.6 在异步方法中异步地等待任务 413
20.3.7 Task.Delay方法 415
20.4 在GUI程序中执行异步操作 416
20.5 使用异步Lambda表达式 420
20.6 完整的GUI程序 421
20.7 BackgroundWorker类 423
20.8 并行循环 428
20.9 其他异步编程模式 430
20.10 Begin Invoke和End Invoke 431
20.10.1 等待—直到结束模式 432
20.10.2 Async Result类 433
20.10.3 轮询模式 434
20.10.4 回调模式 435
20.11 计时器 438
第21章 命名空间和程序集 440
21.1 引用其他程序集 440
21.2 命名空间 444
21.2.1 命名空间名称 447
21.2.2 命名空间的补充 447
21.2.3 命名空间跨文件伸展 448
21.2.4 嵌套命名空间 449
21.3 using指令 450
21.3.1 using命名空间指令 450
21.3.2 using别名指令 451
21.4 程序集的结构 451
21.5 程序集标识符 453
21.6 强命名程序集 453
21.7 程序集的私有方式部署 455
21.8 共享程序集和GAC 455
21.8.1 把程序集安装到GAC 455
21.8.2 GAC内的并肩执行 456
21.9 配置文件 457
21.10 延迟签名 457
第22章 异常 459
22.1 什么是异常 459
22.2 try语句 460
22.3 异常类 461
22.4 catch子句 462
22.5 使用特定catch子句的示例 462
22.6 catch子句段 463
22.7 finally块 464
22.8 为异常寻找处理程序 465
22.9 更进一步搜索 466
22.9.1 一般法则 466
22.9.2 搜索调用栈的示例 467
22.10 抛出异常 469
22.11 不带异常对象的抛出 470
第23章 预处理指令 472
23.1 什么是预处理指令 472
23.2 基本规则 472
23.3 #define和#undef指令 473
23.4 条件编译 474
23.5 条件编译结构 475
23.6 诊断指令 476
23.7 行号指令 477
23.8 区域指令 478
23.9 #pragmawarning指令 479
第24章 反射和特性 480
24.1 元数据和反射 480
24.2 Type类 480
24.3 获取Type对象 482
24.4 什么是特性 484
24.5 应用特性 485
24.6 预定义的保留的特性 485
24.6.1 Obsolete特性 485
24.6.2 Conditional特性 486
24.6.3 调用者信息特性 488
24.6.4 Debugger StepThrough特性 488
24.6.5 其他预定义特性 489
24.7 有关应用特性的更多内容 490
24.7.1 多个特性 490
24.7.2 其他类型的目标 490
24.7.3 全局特性 491
24.8 自定义特性 491
24.8.1 声明自定义特性 492
24.8.2 使用特性的构造函数 492
24.8.3 指定构造函数 492
24.8.4 使用构造函数 493
24.8.5 构造函数中的位置参数和命名参数 493
24.8.6 限制特性的使用 494
24.8.7 自定义特性的最佳实践 495
24.9 访问特性 496
24.9.1 使用Is Defined方法 496
24.9.2 使用Get Custom Attributes方法 497
第25章 其他主题 499
25.1 概述 499
25.2 字符串 499
25.3 使用String Builder类 501
25.4 把字符串解析为数据值 502
25.5 关于可空类型的更多内容 503
25.5.1 为可空类型赋值 505
25.5.2 使用空接合运算符 505
25.5.3 使用可空用户自定义类型 506
25.6 Main方法 508
25.7 文档注释 509
25.7.1 插入文档注释 510
25.7.2 使用其他XML标签 510
25.8 嵌套类型 511
25.8.1 嵌套类的示例 512
25.8.2 可见性和嵌套类型 513
25.9 析构函数和dispose模式 514
25.9.1 标准dispose模式 515
25.9.2 比较构造函数和析构函数 517
25.10 和COM的互操作 518
索引 521

亚马逊链接

基本信息

名称: WPF编程宝典 使用C#2012和.NET 4.5(第4版)
作者信息: 作者: 麦克唐纳 (Matthew MacDonald) [ 中文 pdf ]

简单介绍

WPF权威著作,内容更新至C# 2012和.NET 4.5

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
第Ⅰ部分基础知识
第1章WPF概述
1.1Windows图形演化
1.1.1DirectX:新的图形引擎
1.1.2硬件加速与WPF
1.2WPF:高级API
1.3分辨率无关性
1.3.1WPF单位
1.3.2系统DPI
1.3.3位图和矢量图形
1.4WPF体系结构
1.5WPF4.5
1.5.1WPF工具包
1.5.2VisualStudio2012
1.6小结16
第2章XAML
2.1理解XAML
2.1.1WPF之前的图形用户界面
2.1.2XAML变体
2.1.3XAML编译
2.2XAML基础
2.2.1XAML名称空间
2.2.2代码隐藏类
2.3XAML中的属性和事件
2.3.1简单属性与类型转换器
2.3.2复杂属性
2.3.3标记扩展
2.3.4附加属性
2.3.5嵌套元素
2.3.6特殊字符与空白
2.3.7事件
2.3.8完整的EightBallAnswer示例
2.4使用其他名称空间中的类型
2.5加载和编译XAML
2.5.1只使用代码
2.5.2使用代码和未经编译的XAML
2.5.3使用代码和编译过的XAML
2.5.4只使用XAML
2.6小结
第3章布局
3.1理解WPF中的布局
3.1.1WPF布局原则
3.1.2布局过程
3.1.3布局容器
3.2使用StackPanel面板进行简单布局
3.2.1布局属性
3.2.2对齐方式
3.2.3边距
3.2.4最小尺寸、最大尺寸以及显式地设置尺寸
3.2.5Border控件
3.3WrapPanel和DockPanel面板
3.3.1WrapPanel面板
3.3.2DockPanel面板
3.3.3嵌套布局容器
3.4Grid面板
3.4.1调整行和列
3.4.2布局舍入
3.4.3跨越行和列
3.4.4分割窗口
3.4.5共享尺寸组
3.4.6UniformGrid面板
3.5使用Canvas面板进行基于坐标的布局
3.5.1Z顺序
3.5.2lnkCanvas元素
3.6布局示例
3.6.1列设置
3.6.2动态内容
3.6.3组合式用户界面
3.7小结
第4章依赖项属性
4.1理解依赖项属性
4.1.1定义依赖项属性
4.1.2注册依赖项属性
4.1.3添加属性包装器
4.1.4WPF使用依赖项属性的方式
4.1.5共享的依赖项属性
4.1.6附加的依赖项属性
4.2属性验证
4.2.1验证回调
4.2.2强制回调
4.3小结
第5章路由事件
5.1理解路由事件
5.1.1定义、注册和封装路由事件
5.1.2共享路由事件
5.1.3引发路由事件
5.1.4处理路由事件
5.2事件路由
5.2.1RoutedEventArgs类
5.2.2冒泡路由事件
5.2.3处理挂起的事件
5.2.4附加事件
5.2.5隧道路由事件
5.3WPF事件
5.3.1生命周期事件
5.3.2输入事件
5.4键盘输入
5.4.1处理按键事件
5.4.2焦点
5.4.3获取键盘状态
5.5鼠标输入
5.5.1鼠标单击
5.5.2捕获鼠标
5.5.3鼠标拖放
5.6多点触控输入
5.6.1多点触控的输入层次
5.6.2原始触控
5.6.3操作
5.6.4惯性
5.7小结
第Ⅱ部分进一步研究WPF
第6章控件
6.1控件类
6.1.1背景画刷和前景画刷
6.1.2字体
6.1.3鼠标光标
6.2内容控件
6.2.1Content属性
6.2.2对齐内容
6.2.3WPF内容原则
6.2.4标签
6.2.5按钮
6.2.6工具提示
6.3特殊容器
6.3.1ScrollViewer
6.3.2GroupBox
6.3.3TabItem
6.3.4Expander
6.4文本控件
6.4.1多行文本
6.4.2选择文本
6.4.3拼写检查
6.4.4PasswordBox
6.5列表控件
6.5.1ListBox
6.5.2ComboBox
6.6基于范围的控件
6.6.1Slider
6.6.2ProgressBar
6.7日期控件
6.8小结
第7章Application类
7.1应用程序的生命周期
7.1.1创建Application对象
7.1.2派生自定义的Application类
7.1.3应用程序的关闭方式
7.1.4应用程序事件
7.2Application类的任务
7.2.1显示初始界面
7.2.2处理命令行参数
7.2.3访问当前Application对象
7.2.4在窗口之间进行交互
7.2.5单实例应用程序
7.3程序集资源
7.3.1添加资源
7.3.2检索资源
7.3.3packURI
7.3.4内容文件
7.4本地化
7.4.1构建能够本地化的用户界面
7.4.2使应用程序为本地化做好准备
7.4.3管理翻译过程
7.5小结
第8章元素绑定
8.1将元素绑定到一起
8.1.1绑定表达式
8.1.2绑定错误
8.1.3绑定模式
8.1.4使用代码创建绑定
8.1.5使用代码检索绑定
8.1.6多绑定
8.1.7绑定更新
8.1.8绑定延迟
8.2绑定到非元素对象
8.2.1Source属性
8.2.2RelativeSource属性
8.2.3DataContext属性
8.3小结
第9章命令
9.1理解命令
9.2WPF命令模型
9.2.1ICommand接口
9.2.2RoutedCommand类
9.2.3RoutedUICommand类
9.2.4命令库
9.3执行命令
9.3.1命令源
9.3.2命令绑定
9.3.3使用多命令源
9.3.4微调命令文本
9.3.5直接调用命令
9.3.6禁用命令
9.3.7具有内置命令的控件
9.4高级命令
9.4.1自定义命令
9.4.2在不同位置使用相同的命令
9.4.3使用命令参数
9.4.4跟踪和翻转命令
9.5小结
第10章资源
10.1资源基础
10.1.1资源集合
10.1.2资源的层次
10.1.3静态资源和动态资源
10.1.4非共享资源
10.1.5通过代码访问资源
10.1.6应用程序资源
10.1.7系统资源
10.2资源字典
10.2.1创建资源字典
10.2.2使用资源字典
10.2.3在程序集之间共享资源
10.3小结
第11章样式和行为
11.1样式基础
11.1.1创建样式对象
11.1.2设置属性
11.1.3关联事件处理程序
11.1.4多层样式
11.1.5通过类型自动应用样式
11.2触发器
11.2.1简单触发器
11.2.2事件触发器
11.3行为
11.3.1获取行为支持
11.3.2理解行为模型
11.3.3创建行为
11.3.4使用行为
11.3.5Blend中的设计时行为支持
11.4小结
第Ⅲ部分图画和动画
第12章形状、画刷和变换
12.1理解形状
12.1.1Shape类
12.1.2矩形和椭圆
12.1.3改变形状的尺寸和放置形状
12.1.4使用Viewbox控件缩放形状
12.1.5直线
12.1.6折线
12.1.7多边形
12.1.8直线线帽和直线交点
12.1.9点划线
12.1.10像素对齐
12.2画刷289
12.2.1SolidColorBrush画刷
12.2.2LinearGradientBrush画刷
12.2.3RadialGradientBrush画刷
12.2.4ImageBrush画刷
12.2.5平铺的ImageBrush画刷
12.2.6VisualBrush画刷
12.2.7BitmapCacheBrush画刷
12.3变换
12.3.1变换形状
12.3.2变换元素
12.4透明
12.4.1使元素半透明
12.4.2透明掩码
12.5小结
第13章几何图形和图画
13.1路径和几何图形
13.1.1直线、矩形和椭圆图形
13.1.2使用GeometryGroup组合形状309
13.1.3使用CombinedGeometry融合几何图形
13.1.4使用PathGeometry绘制曲线和直线
13.1.5微语言几何图形
13.1.6使用几何图形进行剪裁
13.2图画
13.2.1显示图画
13.2.2导出插图
13.3小结
第14章效果和可视化对象
14.1可视化对象
14.1.1绘制可视化对象
14.1.2在元素中封装可视化对象
14.1.3命中测试
14.1.4复杂的命中测试
14.2效果
14.2.1BlurEffect类
14.2.2DropShadowEffect类
14.2.3ShaderEffect类
14.3WriteableBitmap类
14.3.1生成位图
14.3.2写入WriteableBitmap对象
14.3.3更高效的像素写入
14.4小结
第15章动画基础
15.1理解WPF动画
15.1.1基于时间的动画
15.1.2基于属性的动画
15.2基本动画
15.2.1Animation类
15.2.2使用代码创建动画
15.2.3同时发生的动画
15.2.4动画的生命周期
15.2.5Timeline类
15.3故事板
15.3.1故事板
15.3.2事件触发器
15.3.3重叠动画
15.3.4同步的动画
15.3.5控制播放
15.3.6监视动画进度
15.4动画缓动
15.4.1使用缓动函数
15.4.2在动画开始时应用缓动与在动画结束时应用缓动
15.4.3缓动函数类
15.4.4创建自定义缓动函数
15.5动画性能
15.5.1期望的帧率
15.5.2位图缓存
15.6小结
第16章高级动画
16.1动画类型回顾
16.1.1动态变换
16.1.2动态改变画刷
16.1.3动态改变像素着色器
16.2关键帧动画
16.2.1离散的关键帧动画
16.2.2缓动关键帧
16.2.3样条关键帧动画
16.3基于路径的动画
16.4基于帧的动画
16.5使用代码创建故事板
16.5.1创建主窗口
16.5.2创建Bomb用户控件
16.5.3投弹
16.5.4拦截炸弹
16.5.5统计炸弹和清理工作
16.6小结
第Ⅳ部分模板和自定义元素
第Ⅴ部分数据
第Ⅵ窗口、页面和富控件
第Ⅶ部分文档和打印
第28章文档793
第Ⅷ部分其他主题

亚马逊链接

基本信息

名称: C++ Primer(中文版)(第5版)
作者信息: 作者: 斯坦利·李普曼 (Stanley B. Lippman) [ 中文 pdf ]

简单介绍

《C++ Primer(中文版)(第5版)》编辑推荐:一书在手,架构无忧;三十位一线架构师真知实践;百位顶级架构师献计献策;十万文字尽显架构精华。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
第1章 开始
1.1 编写一个简单的C++程序
1.1.1 编译、运行程序
1.2 初识输入输出
1.3 注释简介
1.4 控制流
1.4.1 while语句
1.4.2 for语句
1.4.3 读取数量不定的输入数据
1.4.4 if语句
1.5 类简介
1.5.1 Sales_item类
1.5.2 初识成员函数
1.6 书店程序
小结
术语表
第Ⅰ部分 C++基础
第2章 变量和基本类型
2.1 基本内置类型
2.1.1 算术类型
2.1.2 类型转换
2.1.3 字面值常量
2.2 变量
2.2.1 变量定义
2.2.2 变量声明和定义的关系
2.2.3 标识符
2.2.4 名字的作用域
2.3 复合类型
2.3.1 引用
2.3.2 指针
2.3.3 理解复合类型的声明
2.4 const限定符
2.4.1 const的引用
2.4.2 指针和const
2.4.3 顶层const
2.4.4 constexpr和常量表达式
2.5 处理类型
2.5.1 类型别名
2.5.2 auto类型说明符
2.5.3 decltype类型指示符
2.6 自定义数据结构
2.6.1 定义Sales_data类型
2.6.2 使用Sales_data类
2.6.3 编写自己的头文件
小结
术语表
第3章 字符串、向量和数组
3.1 命名空间的using声明
3.2 标准库类型string
3.2.1 定义和初始化string对象
3.2.2 string对象上的操作
3.2.3 处理string对象中的字符
3.3 标准库类型vector
3.3.1 定义和初始化vector对象
3.3.2 向vector对象中添加元素
3.3.3 其他vector操作
3.4 迭代器介绍
3.4.1 使用迭代器
3.4.2 迭代器运算
3.5 数组
3.5.1 定义和初始化内置数组
3.5.2 访问数组元素
3.5.3 指针和数组
3.5.4 C风格字符串
3.5.5 与旧代码的接口
3.6 多维数组
小结
术语表
第4章 表达式
4.1 基础
4.1.1 基本概念
4.1.2 优先级与结合律
4.1.3 求值顺序
4.2 算术运算符
4.3 逻辑和关系运算符
4.4 赋值运算符
4.5 递增和递减运算符
4.6 成员访问运算符
4.7 条件运算符
4.8 位运算符
4.9 sizeof运算符
4.10 逗号运算符
4.11 类型转换
4.11.1 算术转换
4.11.2 其他隐式类型转换
4.11.3 显式转换
4.12 运算符优先级表
小结
术语表
第5章 语句
5.1 简单语句
5.2 语句作用域
5.3 条件语句
5.3.1 if语句
5.3.2 switch语句
5.4 迭代语句
5.4.1 while语句
5.4.2 传统的for语句
5.4.3 范围for语句
5.4.4 do while语句
5.5 跳转语句
5.5.1 break语句
5.5.2 continue语句
5.5.3 goto语句
5.6 TRY语句块和异常处理
5.6.1 throw表达式
5.6.2 try语句块
5.6.3 标准异常
小结
术语表
第6章 函数
6.1 函数基础
6.1.1 局部对象
6.1.2 函数声明
6.1.3 分离式编译
6.2 参数传递
6.2.1 传值参数
6.2.2 传引用参数
6.2.3 const形参和实参
6.2.4 数组形参
6.2.5 main:处理命令行选项
6.2.6 含有可变形参的函数
6.3 返回类型和return语句
6.3.1 无返回值函数
6.3.2 有返回值函数
6.3.3 返回数组指针
6.4 函数重载
6.4.1 重载与作用域
6.5 特殊用途语言特性
6.5.1 默认实参
6.5.2 内联函数和constexpr函数
6.5.3 调试帮助
6.6 函数匹配
6.6.1 实参类型转换
6.7 函数指针
小结
术语表
第7章 类
7.1 定义抽象数据类型
7.1.1 设计Sales_data类
7.1.2 定义改进的Sales_data类
7.1.3 定义类相关的非成员函数
7.1.4 构造函数
7.1.5 拷贝、赋值和析构
7.2 访问控制与封装
7.2.1 友元
7.3 类的其他特性
7.3.1 类成员再探
7.3.2 返回*this的成员函数
7.3.3 类类型
7.3.4 友元再探
7.4 类的作用域
7.4.1 名字查找与类的作用域
7.5 构造函数再探
7.5.1 构造函数初始值列表
7.5.2 委托构造函数
7.5.3 默认构造函数的作用
7.5.4 隐式的类类型转换
7.5.5 聚合类
7.5.6 字面值常量类
7.6 类的静态成员
小结
术语表
……
第Ⅱ部 C++标准库
第Ⅲ部分 类设计者的工具
第Ⅳ部分 高级主题

亚马逊链接

基本信息

名称: 清华大学计算机系列教材:数据结构(C++语言版)(第3版)
作者信息: 作者: 邓俊辉 [ 中文 pdf ]

简单介绍

《清华大学计算机系列教材:数据结构(C++语言版)(第3版)》习题解析涵盖验证型、拓展型、反思型、实践型和研究型习题,总计290余道大题、525道小题,激发读者的求知欲,培养自学能力和独立思考习惯。主教材和习题解析共计配有340多组、400余幅插图结合简练的叙述,40多张表格列举简明的规范、过程及要点,280余段代码及算法配合详尽而简洁的注释,使深奥抽象的概念和过程得以具体化且便于理解和记忆;推荐20余册经典的专著与教材,提供40余篇重点的学术论文,便于读者进一步钻研和拓展。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
第1章 绪论
1.1 计算机与算法
1.2 复杂度度量
1.3 复杂度分析
1.4递归 1.5 抽象数据类型 第2章 向量 2.1 从数组到向量 2.2 接口 2.3 构造与析构 2.4 动态空间管理 2.5 常规向量 2.6 有序向量 2.7排序与下界
2.8 排序器
第3章 列表
3.1 从向量到列表
3.2 接口
3.3 列表
3.4 有序列表
3.5 排序器
第4章 栈与队列
4.1 栈
4.2 栈与递归
4.3 栈的典型应用
4.4试探回溯法 4.5 队列 4.6 队列应用 第5章 二叉树 5.1 二叉树及其表示 5.2 编码树 5.3 二叉树的实现 5.4 遍历 5.5 Huffmann 编码 第6章 图 6.1 概述 6.2 抽象数据类型 6.3 邻接矩阵 6.4 邻接表 6.5 图遍历算法概述 6.6 广度优先搜索 6.7 深度优先搜索 6.8 拓扑排序 6.9双连通域分解
6.10 优先级搜索
6.11 最小支撑树
6.12 最短路径
第7章 搜索树
7.1 查找
7.2 二叉搜索树
7.3 平衡二叉搜索树
7.4 AVL 树
第8章 高级搜索树 高级搜索树
8.1 伸展树
8.2 B—树
8.3红黑树 8.4kd—树
第9章 词典
9.1 词典 ADTADTADT
9.2跳转表 9.3 散列表 9.4散列应用
第10章 优先级队列
10.1 优先级队列 ADT
10.2 堆
10.3左式堆 第11章 串 11.1 串及匹配 11.2 蛮力算法 11.3 KMP算法 11.4BM 算法
11.5Karp—Rabin算法 第12章 排序 12.1 快速排序 12.2选取与中位数
12.3*希尔排序
附录
参考文献
插图索引
表格索引
算法索引
代码索引
关键词索引

亚马逊链接

基本信息

名称: Clojure编程乐趣
作者信息: 作者: 福格斯 (Michael Fogus) [ 英文 pdf ]

简单介绍

如果曾亲见数十行JAVA活ruby浓缩成寥寥数行clojure代码,你便不难理解为何本书作者称clojure为一种有趣的语言。《Clojure编程乐趣》包括以下内容:●● 什么是Clojure 以及为什么要使用Clojure;●● 如何使用宏;●● 如何做出优雅的应用设计;●● 函数式编程惯用法。如果你是具有其他程序设计背景的程序员,那么《Clojure编程乐趣》就是为你而编写的。你无需Clojure 和Lisp 的经验。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
第1部分 基础
第1章 Clojure哲学
1.1 Clojure之道
1.1.1 简单
1.1.2 专注
1.1.3 实用
1.1.4 清晰
1.1.5 一致
1.2 为何(又一种)Lisp
1.2.1 优美
1.2.2 极度灵活
1.2.3 代码即数据
1.3 函数式编程
1.3.1 一个可行的函数式编程定义
1.3.2 函数式编程的内涵
1.4 Clojure为何不是面向对象的
1.4.1 定义术语
1.4.2 命令式“烘烤”
1.4.3 OOP提供的大多数东西,Clojure也有
1.5 小结
第2章 Clojure疾风式教程
2.1 标量
2.1.1 数字
2.1.2 整数
2.1.3 浮点数
2.1.4 有理数
2.1.5 符号
2.1.6 关键字
2.1.7 字符串
2.1.8 字符
2.2 组合起来:集合
2.2.1 list
2.2.2 vector
2.2.3 map
2.2.4 set
2.3 付诸实现:函数
2.3.1 调用函数
2.3.2 定义函数
2.3.3 用def和defn简化函数定义
2.3.4 以#()定义原位(in—place)函数
2.4 var
2.5 局部量、循环和block
2.5.1 block
2.5.2 局部量
2.5.3 循环
2.6 防止发生:quote
2.6.1 求值
2.6.2 quote
2.6.3 反quote
2.6.4 反quote拼接
2.6.5 auto—gensym
2.7 与Java互操作
2.7.1 访问静态类成员
2.7.2 创建Java实例
2.7.3 用运算符访问Java实例成员
2.7.4 设置Java实例属性
2.7.5 …宏
2.7.6 doto宏
2.7.7 定义类
2.8 异常环境
2.9 命名空间
2.9.1 用ns创建命名空间
2.9.2 用:require加载其他命名空间
2.9.3 用:use加载和创建映射
2.9.4 用:refer创建映射
2.9.5 用:import加载Java类
2.10 小结
第3章 小试牛刀
3.1 真值
3.1.1 什么是真
3.1.2 不要创建布尔对象
3.1.3 nil vs.false
3.2 小心翼翼nil双关
3.3 解构
3.3.1 你的任务,你应该选择接受
3.3.2 解构vector
3.3.3 解构map
3.3.4 解构函数参数
3.3.5 解构vs.访问器方法
3.4 用REPL做试验
3.4.1 试验seq
3.4.2 试验图形化
3.4.3 知识汇总
3.4.4 出错之时
3.4.5 只为乐趣
3.5 小结
第2部分 数据类型
第4章 标量
4.1 理解精度
4.1.1 截断(Truncation)
4.1.2 提升(Promotion)
4.1.3 上溢(Overflow)
4.1.4 下溢(Underflow)
4.1.5 舍入错误(Rounding errors)
4.2 有理数
4.2.1 为什么是有理数
4.2.2 怎样才是有理数
4.2.3 有理数的合理性
4.3 使用关键字的时机
4.3.1 关键字与符号有怎样的差别
4.3.2 限定关键字
4.4 符号解析
4.4.1 元数据
4.4.2 符号与命名空间
4.4.3 Lisp—1
4.5 正则表达式——第二个问题
4.5.1 语法
4.5.2 函数
4.5.3 小心可变匹配器(matcher)
4.6 总结
第5章 组合数据类型
5.1 持久化、序列和复杂度
5.1.1 “你一直用着这个词。我认为,这并不意味着它就是你以为的含义”
5.1.2 序列术语及其含义
5.1.3 大O
5.2 vector:创建和使用其各种变体
5.2.1 构建vector
5.2.2 大vector
5.2.3 vector当做栈
5.2.4 使用vector而非reverse
5.2.5 子vector
5.2.6 vector当做MapEntry
5.2.7 vector不是什么
5.3 list:Clojure代码form的数据结构
5.3.1 像Lisp那样的list
5.3.2 list当做栈
5.3.3 list不是什么
5.4 如何使用持久化队列
5.4.1 什么都没有的队列
5.4.2 入队
5.4.3 获取
5.4.4 出队
5.5 持久化set
5.5.1 Clojure set的基本属性
5.5.2 用sorted—set保持set的顺序
5.5.3 contains?
5.5.4 clojure.set
5.6 思考map
5.6.1 hash map
5.6.2 以有序map保持键值的顺序
5.6.3 用数组map保持插入顺序
5.7 知识汇总:在序列里查找某项的位置
5.8 小结
第3部分 函数式编程
第6章 惰性与不变性
6.1 关于不变性
6.1.1 定义不变性
6.1.2 固步自封—不变性
6.2 设计一个持久化玩具
6.3 惰性
6.3.1 以“逻辑与”熟悉惰性
6.3.2 理解lazy—seq的秘诀
6.3.3 丢掉头
6.3.4 采用无限序列
6.3.5 delay和force宏
6.3.6 知识汇总:一个惰性的快速排序程序
6.4 小结
第7章 函数式编程
7.1 各种形式的函数
7.1.1 一等函数
7.1.2 高阶函数
7.1.3 纯函数
7.1.4 命名实参
7.1.5 使用前置条件和后置条件约束函数
7.2 闭包
7.3 递归思考
7.3.1 普通递归
7.3.2 尾递归和recur
7.3.3 勿忘trampoline
7.3.4 延续传递风格
7.4 知识汇总:A寻路 7.4.1 A实现
7.4.2 A*实现的笔记
7.5 小结
第4部分 大规模设计
第8章 宏
8.1 数据即代码即数据
8.1.1 语法quote、反quote和拼接
8.1.2 宏之经验谈
8.2 定义控制结构
8.2.1 不用语法quote定义控制结构
8.2.2 使用语法quote和反quote定义控制结构
8.3 组合form的宏
8.4 使用宏改变form
8.5 使用宏控制符号解析
8.5.1 回指
8.5.2 (具有争议地)有用的选择性名字捕获
8.6 使用宏管理资源
8.7 知识汇总:返回函数的宏
8.8 小结
第9章 组合数据与代码
9.1 命名空间
9.1.1 创建命名空间
9.1.2 只暴露所需
9.1.3 声明性包含和排除
9.2 以通用设计模式探索Clojure多重方法
9.2.1 组成部分
9.2.2 用法
9.2.3 以多重方法拯救
9.2.4 处理继承行为的特别继承
9.2.5 解析层次中的冲突
9.2.6 真正的最大功率任意分发
9.3 类型、协议和记录
9.3.1 记录
9.3.2 协议
9.3.3 用deftype从更原始的基础开始构建
9.4 知识汇总:国际象棋移动的流畅构建器
9.4.1 Java实现
9.4.2 Clojure实现
9.5 小结
第10章 Java.next
10.1 使用proxy动态生成对象
10.2 Clojure gen—class和GUI程序设计
10.2.1 命名空间作为类的规范
10.2.2 以Clojure探索用户界面设计与开发
10.3 Clojure同Java数组的关系
10.3.1 数组的类型:原生与引用
10.3.2 数组可变性
10.3.3 那个不幸的命名约定
10.3.4 多维数组
10.3.5 调用可变方法/构造函数
10.4 所有Clojure函数都实现
10.4.1 java.util.Comparator
10.4.2 java.lang.Runnable
10.4.3 java.util.concurrent.Callable
10.5 在Java API里使用Clojure数据结构
10.5.1 java.util.List
10.5.2 java.lang.Comparable
10.5.3 java.util.RandomAccess
10.5.4 java.util.Collection
10.5.5 java.util.Set
10.6 definterface
10.7 慎用异常
10.7.1 一点异常的背景
10.7.2 运行时异常vs.编译时异常
10.7.3 处理异常
10.7.4 定制异常
10.8 小结
第11章 变化
11.1 软件事务性内存,包括多版本并发控制和快照隔离
11.1.1 事务
11.1.2 嵌入式事务
11.1.3 STM使其简单的事情
11.1.4 潜在缺陷
11.1.5 让STM不高兴的事
11.2 使用Ref的时机
11.2.1 使用alter进行可协调的、同步的改变
11.2.2 以commute进行可交换的改变
11.2.3 以ref—set进行普通改变
11.2.4 用ensure修正写入偏差
11.2.5 压力之下的Ref
11.3 使用Agent的时机
11.3.1 进程内并发模型vs分布式并发模型
11.3.2 用Agent控制I/O
11.3.3 send和send—off之间的差异
11.3.4 错误处理
11.3.5 何时不用Agent
11.4 使用Atom的时机
11.4.1 跨线程共享
11.4.2 在事务里使用Atom
11.5 使用lock的时机
11.5.1 使用锁进行安全变化
11.5.2 使用Java的显式锁
11.6 使用future的时机
11.7 使用promise的时机
11.7.1 以promise进行并行任务
11.7.2 回调API到阻塞API
11.7.3 确定性死锁
11.8 并行
11.8.1 pvalues
11.8.2 pmap
11.8.3 pcalls
11.9 var和动态绑定
11.9.1 binding宏
11.9.2 创建命名var
11.9.3 创建匿名var
11.9.4 动态作用域
11.10 小结
……
第5部分 杂项考量

亚马逊链接