内容简介
第15章 容器和迭代器
15.1 存储和处理数据
15.1.1 处理数据
15.1.2 泛化代码
15.2 STL理念
15.3 序列和迭代器
15.3.1 回到实例
15.4 链表
15.4.1 链表操作
15.4.2 遍历
15.5 再次泛化vector
15.5.1 遍历容器
15.5.2 auto
15.6 实例:一个简单的文本编辑器
15.6.1 处理行
15.6.2 遍历
15.7 vector、list和 string
15.7.1 insert和erase
15.8 调整vector类达到STL版本的功能
15.9 调整内置数组达到STL版本的功能
15.10 容器概览
15.10.1 迭代器类别
简单练习
思考题
术语
习题
附言
第16章 算法和映射
16.1 标准库算法
16.2 最简单的算法find()
16.2.1 一些一般的应用
16.3 通用搜索算法find_if()
16.4 函数对象
16.4.1 函数对象的抽象视图
16.4.2 类成员上的断言
16.4.3 lambda表达式
16.5 数值算法
16.5.1 累积
16.5.2 泛化accumulate()
16.5.3 内积
16.5.4 泛化inner_ product()
16.6 关联容器
16.6.1 map
16.6.2 map概览
16.6.3 另一个map实例
16.6.4 unordered-map
16.6.5 set
16.7 拷贝
16.7.1 基本拷贝算法
16.7.2 流迭代器
16.7.3 使用set保持顺序
16.7.4 copy-if
16.8 排序和搜索
16.9 容器算法
简单练习
思考题
术语
习题
附言
第17章 一个显示模型
17.1 为什么要使用图形
17.2 一个基本显示模型
17.3 第一个例子
17.4 使用GUI库
17.5 坐标系
17.6 Shape
17.7 使用Shape类
17.7.1 图形头文件和主函数
17.7.2 一个几乎空白的窗口
17.7.3 坐标轴
17.7.4 绘制函数图
17.7.5 Polygon
17.7.6 Rectangle
17.7.7 填充
17.7.8 Text
17.7.9 Image
17.7.10 更多未讨论的内容
17.8 让图形程序运行起来
17.8.1 源文件
简单练习
思考题
术语
习题
附言
第18章 图形类
18.1 图形类概览
18.2 Point和Line
18.3 Lines
18.4 Color
18.5 Line-style
18.6 Open_polyline
18.7 Closed_polyline
18.8 Polygon
18.9 Rectangle
18.10 管理未命名对象
18.11 Text
18.12 Circle
18.13 Ellipse
18.14 Marked_polyline
18.15 Marks
18.16 Mark
18.17 Image
简单练习
思考题
术语
习题
附言
第19章 设计图形类
19.1 设计原则
19.1.1 类型
19.1.2 操作
19.1.3 命名
19.1.4 可变性
19.2 Shape
19.2.1 一个抽象类
19.2.2 访问控制
19.2.3 绘制形状
19.2.4 拷贝和可变性
19.3 基类和派生类
19.3.1 对象布局
19.3.2 类的派生和虚函数的定义
19.3.3 覆盖
19.3.4 访问
19.3.5 纯虚函数
19.4 面向对象程序设计的好处
简单练习
思考题
术语
习题
附言
第20章 绘制函数图和数据图
20.1 简介
20.2 绘制简单函数图
20.3 Function
20.3.1 默认参数
20.3.2 更多例子
20.3.3 lambda表达式
20.4 Axis
20.5 近似
20.6 绘制数据图
20.6.1 读取文件
20.6.2 一般布局
20.6.3 数据比例
20.6.4 构造数据图
简单练习
思考题
术语
习题
附言
第21章 图形用户界面
21.1 用户界面的选择
21.2 “Next”按钮
21.3 一个简单的窗口
21.3.1 回调函数
21.3.2 等待循环
21.3.3 lambda表达式作为回调函数
21.4 Button和其他Widget
21.4.1 Widget
21.4.2 Button
21.4.3 In_ box和Out box
21.4.4 Menu
21.5 一个实例
21.6 控制流反转
21.7 添加菜单
21.8 调试GUI代码
简单练习
思考题
术语
习题
附言
第22章 理念和历史
22.1 历史、理念和专业水平
22.1.1 程序设计语言的目标和哲学
22.1.2 编程理念
22.1.3 风格/范型
22.2 程序设计语言历史概览
22.2.1 最早的程序设计语言
22.2.2 现代程序设计语言的起源
22.2.3 Algol家族
22.2.4 Simula
22.2.5 C
22.2.6 C++
22.2.7 今天
22.2.8 参考资料
思考题
术语
习题
附言
第23章 文本处理
23.1 文本
23.2 字符串
23.3 I/O流
23.4 映射
23.4.1 实现细节
23.5 一个问题
23.6 正则表达式的思想
23.6.1 原始字符串常量
23.7 用正则表达式进行搜索
23.8 正则表达式语法
23.8.1 字符和特殊字符
23.8.2 字符集
23.8.3 重复
23.8.4 子模式
23.8.5 可选项
23.8.6 字符集和范围
23.8.7 正则表达式错误
23.9 使用正则表达式进行模式匹配
23.10 参考文献
简单练习
思考题
术语
习题
附言
第24章 数值计算
24.1 简介
24.2 大小、精度和溢出
24.2.1 数值限制
24.3 数组
24.4 C风格的多维数组
24.5 Matrix库
24.5.1 矩阵的维和矩阵访问
24.5.2 一维矩阵
24.5.3 二维矩阵
24.5.4 矩阵I/O
24.5.5 三维矩阵
24.6 实例:求解线性方程组
24.6.1 经典的高斯消去法
24.6.2 选取主元
24.6.3 测试
24.7 随机数
24.8 标准数学函数
24.9 复数
24.10 参考文献
简单练习
思考题
术语
习题
附言
第25章 嵌入式系统程序设计
25.1 嵌入式系统
25.2 基本概念
25.2.1 可预测性
25.2.2 理想
25.2.3 生活在故障中
25.3 内存管理
25.3.1 动态内存分配存在的问题
25.3.2 动态内存分配的替代方法
25.3.3 存储池实例
25.3.4 栈实例
25.4 地址、指针和数组
25.4.1 未经检查的类型转换
25.4.2 一个问题:不正常的接口
25.4.3 解决方案:接口类
25.4.4 继承和容器
25.5 位、字节和字
25.5.1 位和位运算
25.5.2 bitset
25.5.3 有符号数和无符号数
25.5.4 位运算
25.5.5 位域
25.5.6 实例:简单加密
25.6 编码规范
25.6.1 编码规范应该是怎样的
25.6.2 编码原则实例
25.6.3 实际编码规范
简单练习
思考题
术语
习题
附言
第26章 测试
26.1 我们想要什么
26.1.1 警告
26.2 程序正确性证明
26.3 测试
26.3.1 回归测试
26.3.2 单元测试
26.3.3 算法和非算法
26.3.4 系统测试
26.3.5 寻找不成立的假设
26.4 测试方案设计
26.5 调试
26.6 性能
26.6.1 计时
26.7 参考文献
简单练习
思考题
术语
习题
附言
第27章 C语言
27.1 C和C++:兄弟
27.1.1 C/C++兼容性
27.1.2 C不支持的C++特性
27.1.3 C标准库
27.2 函数
27.2.1 不支持函数名重载
27.2.2 函数参数类型检查
27.2.3 函数定义
27.2.4 C++调用C和C调用C++
27.2.5 函数指针
27.3 小的语言差异
27.3.1 struct标签名字空间
27.3.2 关键字
27.3.3 定义
27.3.4 C风格类型转换
27.3.5 无类型指针的转换
27.3.6 枚举
27.3.7 名字空间
27.4 自由存储空间
27.5 C风格字符串
27.5.1 C风格字符串和const
27.5.2 字节操作
27.5.3 实例:strcpy()
27.5.4 一个风格问题
27.6 输入/输出:stdio
27.6.1 输出
27.6.2 输入
27.6.3 文件
27.7 常量和宏
27.8 宏
27.8.1 类函数宏
27.8.2 语法宏
27.8.3 条件编译
27.9 实例:侵入式容器
简单练习
思考题
术语
习题
附言
附录C 标准库概要
附录D 安装FLTK
附录E GUI实现
术语表
参考文献