《STL泛型编程思想》
第一部分 基础知识
第一章 导论
1.1 计算机语言概述
1.2 C++语言概述
1.2.1 数据抽象
1.2.2 基于对象
1.2.3 面向对象
1.2.4 虚函数和多态
1.2.5 模板介绍
1.3 STL库简介
1.3.1 C++库概述
1.3.2 意义
1.3.3 发展历史
1.3.4 不同的STL库
1.4 泛型编程
1.5 C++编译器
第二章 C++标准库
2.1 库的概述
2.2 string库
2.2.1 string库内部
2.2.2 创建string
2.2.3 string内操作
2.2.4 string内查找
2.3 输入/输出流
2.3.1 流的引入
2.3.2 基本iostream库
2.3.3 文件流
2.3.4 流的缓冲与定位
2.3.5 字符串
2.3.6 格式
2.4 STL库
2.4.1 概述
2.4.2 容器概述
2.4.3 迭代器概述
2.4.4 算法概述
第三章 数据结构
3.1 概念
3.2 数据描述
3.3 算法简介
3.4 算法分析
3.5 数学基础
3.6 线性数据结构
3.7 非线性数据结构
3.8 查找排序
第二部分 迭代器容器与算法
第四章 迭代器简介
4.1 输入迭代器
4.2 输出迭代器
4.3 前向迭代器
4.4 双向迭代器
第五章 迭代器细节
5.1 utility
5.2 iterator
5.2.1 概述
5.2.2 迭代器分类
5.3.3 反转型迭代器
5.3.4 插入型迭代器
5.3.5 流迭代器
5.3.6 流缓冲迭代器
5.3 memory
5.3.1 分配器allocator
5.3.2 自定义分配器
5.3.3 限制
5.3.4 相等分配器
5.3.5 临时分配器
5.3.6 其它机制
5.3.7 安全性
5.3.9 临时缓冲区
第六章 算法
6.1 算法概述
6.2 函数对象与<funcitional>
6.2.1 分类
6.2.2 创建
6.2.3 调整
6.2.4 指针适配器
6.3 算法与<algorithm>
6.3.1 概述
6.3.2 记数
6.3.3 操作序列
6.3.4 查找
6.3.5 比较范围
6.3.6 删除元素
6.3.7 对已排序序列运算
6.3.8 堆运算
6.3.9 某一范围内运算
6.4 数值算法与<numeric>
6.4.1 accumulate
6.4.2 partial_sum
6.4.3 adjacent_difference
6.4.4 inner_product
第三部分 序列容器
第七章 向量<vector>
7.1 简介
7.2 构造析构
7.3 基本接口
7.4 插入和删除
7.5 访问器
7.6 运算
7.7 高精度算法
第八章 双端队列<deque>
8.1 简介
8.2 构造析构
8.3 基本接口
8.4 和<vector>比较
8.5 插入和删除
8.6 访问器
8.7 实例
第九章 表<list>
9.1 简介
9.2 构造析构
9.3 基本接口
9.3 基本操作
9.4 排序
9.5 访问器
9.6 运算相关
9.7 实例
第四部分 容器适配器
第十章 堆栈与<stack>
10.1 堆栈简介
10.2 栈类型
10.3 构造析构
10.4 基本接口
10.5 访问器
10.6 堆栈的实例
第十一章 队列与<queue>
11.1 队列介绍
11.2 类型
11.3 构造析构
11.4 基本接口
11.5 访问器
11.6 实例
11.7 priority-queue
11.7.1 介绍
11.7.2 无迭代器
11.7.3 Huffman编码
第五部分 关联容器
第十二章 集合与<set>
12.1 集合与多集合
12.2 集合类型
12.3 集合构造与析构
12.4 基本接口
12.5 基本操作
12.6 迭代器
12.7 基本运算
第十三章 映射与<map>
13.1 映射与多映射
13.2 基本类型
13.3 构造析构
13.4 基本接口
13.5 基本操作
13.6 运算
13.7 参数传递
第六部分 SGI STL容器的对标准的扩充
第十四章 堆与<heap>
14.1 概述
14.2 heap接口
14.3 验算
14.4 <heap>无迭代器
第十五章 键树
15.1 简述
15.2 结点
15.3 构造与析构
15.4 基本操作
15.5 迭代器
15.6 HP的rb_tree类
第十六章 哈希类
16.1 概述
16.2 hash简述
16.3 hashtable 概述
16.4 hashtable 存储形式
16.5 基本操作
16.6 接口介绍
16.7 hash_set和hash_multiset
16.8 hash_map和hash_multimap
第七部分 实现非STL标准数据结构
第十七章 树的算法
17.1 拆分半查找树
17.1.1 BinSearchTree类与实现
17.1.2 BinSearchTree类与Iterator
17.1.3 递归思想
17.1.4 BinSearchTree迭代器
17.2 AVL树
17.2.1 基本算法
17.2.2 AVLTree类
17.2.3 接口定义
第十八章 图与网格
18 图与网络
18.1 图的简介
18.1.1 有向图和无向图
18.1.2 图的基本算法
18.1.2.1 迭代器简介
18.1.2.2 连通性
18.1.2.3 最小生成树
18.1.2.4 最短路径
18.2 网
18.2.1 网络类
18.2.2 network类创建
18.2.3 network类的实现
18.2.4 边的相关算法
18.2.5 全局方法实现
18.2.6 get_minimum_spanning_tree方法
18.2.7 get_shortest_path方法
18.2.8 算法复杂度的估计
18.3 实例
第五部分 软件工程
第十九章 软件工程基础
20.1 软件开发生命周期
20.2 问题分析
20.3 程序设计
20.3.1 方法接口和字段
20.3.2 依赖关系图
20.4 程序实现
20.5 程序维护
第六部分 作者笔录
第二十章 作者感悟