C++之父BjarneStroustrup经典书籍《C++程序设计:原理与实践(原书第2版)》根据新的C++11和C++14,普遍地详细介绍了程序设计的基本要素和技术性,包括种类系统软件、算术运算、控制结构、错误处理等;详细介绍了从电脑键盘和文档获得标值和文字数据信息的方式 及其以图形界面方法表达数值数据、文字和图形;详细介绍了C++标准库中的器皿(如向量、目录、投射)和优化算法(如排列、搜索和里面积有)的设计方案和应用。另外还对C观念和历史时间开展了详尽的探讨,非常好地扩宽了阅读者的视线。
为便捷阅读者由浅入深学习培训,再加篇数限制,《C++程序设计:原理与实践(原书第2版)》分成基本篇和进阶篇两册出版发行,基本篇包括第0~11章、第17~19章和附录A、C,进阶篇包括第12~16章、第20~27章和附录B、D、E。这书是进阶篇。
这书浅显易懂、案例丰富多彩,可做为大学计算机、电子技术、电子信息科学等有关技术专业的教材内容,也能够有关技术专业工作人员参照。
目录
- Programming: Principles and Practice Using C , Second Edition
- 出版者的话
- 译者序
- 前言
- 引言
- 作者简介
- 第15章 容器和迭代器 1
- 15.1 存储和处理数据 1
- 15.1.1 处理数据 1
- 15.1.2 泛化代码 2
- 15.2 STL理念 4
- 15.3 序列和迭代器 7
- 15.3.1 回到实例 8
- 15.4 链表 9
- 15.4.1 链表操作 11
- 15.4.2 遍历 12
- 15.5 再次泛化vector 13
- 15.5.1 遍历容器 15
- 15.5.2 auto 15
- 15.6 实例:一个简单的文本编辑器 16
- 15.6.1 处理行 18
- 15.6.2 遍历 18
- 15.7 vector、list和string 21
- 15.7.1 insert和erase 22
- 15.8 调整vector类达到STL版本的功能 24
- 15.9 调整内置数组达到STL版本的功能 26
- 15.10 容器概览 27
- 15.10.1 迭代器类别 28
- 简单练习 29
- 思考题 30
- 术语 30
- 习题 31
- 附言 32
- 第16章 算法和映射 33
- 16.1 标准库算法 33
- 16.2 最简单的算法f?ind() 34
- 16.2.1 一些一般的应用 35
- 16.3 通用搜索算法f?ind_if() 36
- 16.4 函数对象 38
- 16.4.1 函数对象的抽象视图 39
- 16.4.2 类成员上的断言 39
- 16.4.3 lambda表达式 40
- 16.5 数值算法 41
- 16.5.1 累积 42
- 16.5.2 泛化accumulate() 43
- 16.5.3 内积 44
- 16.5.4 泛化inner_product() 45
- 16.6 关联容器 45
- 16.6.1 map 46
- 16.6.2 map概览 47
- 16.6.3 另一个map实例 50
- 16.6.4 unordered_map 51
- 16.6.5 set 53
- 16.7 拷贝 54
- 16.7.1 基本拷贝算法 55
- 16.7.2 流迭代器 55
- 16.7.3 使用set保持顺序 57
- 16.7.4 copy_if 57
- 16.8 排序和搜索 58
- 16.9 容器算法 60
- 简单练习 60
- 思考题 61
- 术语 62
- 习题 62
- 附言 63
- 第17章 一个显示模型 64
- 17.1 为什么要使用图形 64
- 17.2 一个基本显示模型 65
- 17.3 第一个例子 66
- 17.4 使用GUI库 68
- 17.5 坐标系 69
- 17.6 Shape 70
- 17.7 使用Shape类 70
- 17.7.1 图形头文件和主函数 70
- 17.7.2 一个几乎空白的窗口 71
- 17.7.3 坐标轴 73
- 17.7.4 绘制函数图 74
- 17.7.5 Polygon 75
- 17.7.6 Rectangle 76
- 17.7.7 填充 78
- 17.7.8 Text 78
- 17.7.9 Image 80
- 17.7.10 更多未讨论的内容 81
- 17.8 让图形程序运行起来 81
- 17.8.1 源文件 82
- 简单练习 83
- 思考题 83
- 术语 83
- 习题 84
- 附言 84
- 第18章 图形类 85
- 18.1 图形类概览 85
- 18.2 Point和Line 87
- 18.3 Lines 88
- 18.4 Color 91
- 18.5 Line_style 93
- 18.6 Open_polyline 95
- 18.7 Closed_polyline 96
- 18.8 Polygon 97
- 18.9 Rectangle 99
- 18.10 管理未命名对象 102
- 18.11 Text 104
- 18.12 Circle 105
- 18.13 Ellipse 107
- 18.14 Marked_polyline 108
- 18.15 Marks 110
- 18.16 Mark 111
- 18.17 Image 112
- 简单练习 114
- 思考题 115
- 术语 115
- 习题 116
- 附言 116
- 第19章 设计图形类 117
- 19.1 设计原则 117
- 19.1.1 类型 117
- 19.1.2 操作 118
- 19.1.3 命名 119
- 19.1.4 可变性 120
- 19.2 Shape 121
- 19.2.1 一个抽象类 122
- 19.2.2 访问控制 123
- 19.2.3 绘制形状 125
- 19.2.4 拷贝和可变性 127
- 19.3 基类和派生类 128
- 19.3.1 对象布局 130
- 19.3.2 类的派生和虚函数的定义 131
- 19.3.3 覆盖 131
- 19.3.4 访问 133
- 19.3.5 纯虚函数 134
- 19.4 面向对象程序设计的好处 135
- 简单练习 136
- 思考题 136
- 术语 137
- 习题 137
- 附言 138
- 第20章 绘制函数图和数据图 139
- 20.1 简介 139
- 20.2 绘制简单函数图 139
- 20.3 Function 143
- 20.3.1 默认参数 143
- 20.3.2 更多例子 144
- 20.3.3 lambda表达式 146
- 20.4 Axis 146
- 20.5 近似 148
- 20.6 绘制数据图 152
- 20.6.1 读取文件 153
- 20.6.2 一般布局 154
- 20.6.3 数据比例 155
- 20.6.4 构造数据图 156
- 简单练习 158
- 思考题 159
- 术语 159
- 习题 159
- 附言 160
- 第21章 图形用户界面 161
- 21.1 用户界面的选择 161
- 21.2 “Next”按钮 162
- 21.3 一个简单的窗口 163
- 21.3.1 回调函数 164
- 21.3.2 等待循环 166
- 21.3.3 lambda表达式作为回调函数 166
- 21.4 Button和其他Widget 167
- 21.4.1 Widget 167
- 21.4.2 Button 168
- 21.4.3 In_box和Out_box 169
- 21.4.4 Menu 170
- 21.5 一个实例 170
- 21.6 控制流反转 173
- 21.7 添加菜单 174
- 21.8 调试GUI代码 178
- 简单练习 179
- 思考题 179
- 术语 180
- 习题 180
- 附言 181
- 第22章 理念和历史 182
- 22.1 历史、理念和专业水平 182
- 22.1.1 程序设计语言的目标和哲学 182
- 22.1.2 编程理念 183
- 22.1.3 风格/范型 188
- 22.2 程序设计语言历史概览 190
- 22.2.1 最早的程序设计语言 191
- 22.2.2 现代程序设计语言的起源 193
- 22.2.3 Algol家族 197
- 22.2.4 Simula 203
- 22.2.5 C 204
- 22.2.6 C 207
- 22.2.7 今天 209
- 22.2.8 参考资料 210
- 思考题 211