第 2 版译序 xxi
1 关于本书
1.1 缘起
1.2 阅读前的必要基础
1.3 本书风格与结构
1.4 如何阅读本书
1.5 目前发展情势
1.6 范例代码及额外信息
1.7 反馈
2 C++ 及标准库简介
2.1 C++ Standard 的历史
2.2 复杂度与 Big-O 标记
3 语言新特性
3.1 C++11 语言新特性
3.2 虽旧犹新的语言特性
4 一般概念
4.1 命名空间(Namespace)std
4.2 头文件(Header File)
4.3 差错和异常(Error and Exception)的处理
4.4 Callable Object(可被调用的对象)
4.5 并发与多线程
4.6 分配器(Allocator)
5 通用工具
5.1 Pair 和 Tuple
5.2 Smart Pointer(智能指针)
5.3 数值的极值(Numeric Limit)
5.4 Type Trait 和 Type Utility
5.5 辅助函数
5.6 Class ratio的编译期分数运算
5.7 Clock 和 Timer
5.8 头文件、和
6 标准模板库
6.1 STL 组件(Component)
6.2 容器(Container)
6.3 迭代器(Iterator)
6.4 算法(Algorithm)
6.5 迭代器之适配器(Iterator Adapter)
6.6 用户自定义的泛型函数(User-Defined Generic Function)
6.7 更易型算法(Manipulating Algorithm)
6.8 以函数作为算法的实参
6.9 使用 Lambda
6.10 函数对象(Function Object)
6.11 容器内的元素
6.12 STL 内部的错误和异常
6.13 扩展 STL
7 STL 容器
7.1 容器的共通能力和共通操作
7.2 Array
7.3 Vector
7.4 Deque
7.5 List
7.6 Forward List
7.7 Set 和 Multiset
7.8 Map 和 Multimap
7.9 无序容器( Unordered Container )
7.10 其他 STL 容器
7.11 实现 Reference 语义
7.12 各种容器的使用时机
8 细探 STL 容器成员
8.1 容器内的类型
8.2 创建、复制和销毁( Create, Copy, and Destroy )
8.3 非更易型操作( Nonmodifying Operation )
8.4 赋值( Assignment )
8.5 元素直接访问( Direct Element Access )
8.6 “产出迭代器”之各项操作
8.7 安插和移除( Inserting and Removing )元素
8.8 List 和 Forward List 的特殊成员函数
8.9 容器的策略接口( Policy Interface )
8.10 对分配器( Allocator )的支持
9 STL 迭代器
9.1 迭代器头文件( Header Files for Iterators )
9.2 迭代器种类( Iterator Category )
9.3 迭代器相关辅助函数
9.4 迭代器适配器( Iterator Adapter )
9.5 Iterator Trait(迭代器特性)
9.6 用户自定义( User-Defined )迭代器
10 STL 函数对象及 Lambda
10.1 Function Object(函数对象)的概念
10.2 预定义的 Function Object 和 Binder
10.3 运用 Lambda
11 STL 算法
11.1 算法头文件(Header File)
11.2 算法概观
11.3 辅助函数
11.4 for_each()算法
11.5 非更易型算法(Nonmodifying Algorithm)
11.6 更易型算法(Modifying Algorithm)
11.7 移除型算法(Removing Algorithm)
11.8 变序型算法(Mutating Algorithm)
11.9 排序算法(Sorting Algorithm)
11.10 已序区间算法(Sorted-Range Algorithm)
11.11 数值算法(Numeric Algorithm)
12 特殊容器
12.1 Stack(堆栈)
12.2 Queue(队列)
12.3 Priority Queue(带优先级的队列)
12.4 细究 Container Adapter
12.5 Bitset
13 字符串
13.1 String Class 的目的
13.2 String Class 细节描述
13.3 细究 String Class
14 正则表达式
14.1 Regex 的匹配和查找接口(Match and Search Interface)
14.2 处理”次表达式”(Subexpression)
14.3 Regex Iterator
14.4 Regex Token Iterator
14.5 用于替换的正则表达式
14.6 Regex Flag
14.7 Regex 的异常(Exception)
14.8 Regex ECMAScript 文法
14.9 其他文法
14.10 细究 Basic Regex 签名式
15 以 Stream 完成 I/O
15.1 I/O Stream 的共通基础(Common Background)
15.2 基本 Stream Class 和其对象
15.3 标准的 Stream 操作符]
15.4 Stream 的状态(State)
15.5 标准 I/O 函数
15.6 操控器(Manipulator)
15.7 格式化(Formatting)
15.8 国际化(Internationalization)
15.9 文件访问(File Access)
15.10 为 String 而设计的 Stream Class
15.11 “用户自定义类型”之 I/O 操作符
15.12 连接 Input 和 Output Stream
15.13 Stream Buffer Class
15.14 关于效能(Performance)
16 国际化
16.1 字符编码和字符集
16.2 Locale(地域)概念
16.3 细究 Locale
16.4 细究 Facet
17 数值
17.1 随机数及分布(Random Number and Distribution)
17.2 复数(Complex Number)
17.3 全局数值函数(Global Numeric Function)
17.4 Valarray
18 并发
18.1 高级接口:async()和 Future
18.2 低层接口:Thread 和 Promise
18.3 细说启动线程(Starting a Thread)
18.4 线程同步化与 Concurrency(并发)问题
18.5 Mutex 和 Lock
18.6 Condition Variable(条件变量)
18.7 Atomic
19 分配器
19.1 以应用程序开发者的角度使用 Allocator
19.2 用户自定义的 Allocator
19.3 以程序库开发者的角度使用 Allocator
参考书目
新闻组及论坛( Newsgroup and Forum )
书籍和网站