内容简介
第1章 类模板简介
1.1基本概念
1.1.1命名空间
1.1.2头文件
1.1.3面向对象的程序设计
1.1.4 C+++中的声明和定义
1.1.5最简单的C+++程序
1.1.6指针
1.1.7函数
1.1.8文件
1.1.9程序的编译和链接
1.1.10程序的启动和终止
1.1.11异常处理
1.2类模板定义
1.2.1模板库(STL)
1.2.2 STL之父——Alexander Stepanov
1.2.3类模板的英文原始定义
1.2.4类模板实例化
1.2.5类模板的成员函数
1.2.6类模板的静态数据成员
1.3成员模板
1.4友元模板
1.5函数模板
1.6类模板的参数
1.6.1关键字typename的使用
1.6.2关键字typename与关键字class
1.7模板库简介
1.7.1 C语言和STL的演变历史
1.7.2 STL的组件
1.7.3 STL基本结构
1.7.4 STL编程概述
1.7.5小结
1.8本章小结
第2章 C++中的字符串
2.1字符串库简述
2.2字符的特点
2.3字符串类模板(basic_string模板类)
2.4字符串操作的通用函数
2.4.1构造器和析构器
2.4.2大小和容量
2.4.3元素存取(访问)
2.4.4字符串比较
2.4.5字符串内容修改和替换
2.4.6字符串联接
2.4.7字符串I/O操作
2.4.8字符串搜索
2.4.9字符串对迭代器的支持
2.4.10字符串对配置器的支持
2.5本章小结
第3章 容器
3.1容器的概念
3.1.1容器成员和函数
3.1.2容器的种类和数据结构
3.2序列式容器概述
3.3序列式容器——vector类模板
3.3.1 vector类基础
3.3.2 vector类的成员函数
3.3.3 vector高级编程
3.4序列式容器——list类模板
3.4.1 list的定义和容量
3.4.2 list容器基础成员函数
3.4.3运算符函数
3.4.4其他重要成员函数
3.5序列式容器——deque(双端队列)类模板
3.5.1容器deque和容器vector的对比
3.5.2容器deque的定义和容量
3.5.3 deque容器基础成员函数
3.5.4 deque容器的高级编程
3.5.5 deque的模板函数
3.6关联式容器概述
3.7关联式容器——set/multiset类模板
3.7.1集合set的定义
3.7.2 set和multiset的容量、搜寻和统计
3.7.3 set和multiset的迭代器相关函数和赋值函数
3.7.4 set和multiset的插入和移除
3.7.5 set和multiset的比较运算符
3.8关联式容器——map/multimap类模板
3.8.1 map和multimap基础
3.8.2 map和multimap成员函数
3.8.3 map和multimap的高级编程
3.9特殊容器用法
3.9.1 bitset类模板
3.9.2 stack类模板
3.9.3队列queue类模板
3.9.4 Priority Queues类模板
3.10本章小结
第4章 C++中的算法
4.1算法库简介
4.2非修改性序列算法
4.2.1 for each算法
4.2.2元素计数
4.2.3最大最小值
4.2.4搜寻元素
4.2.5比较
4.3变动性算法
4.3.1复制
4.3.2转换
4.3.3互换
4.3.4赋值
4.3.5替换
4.3.6逆转
4.3.7旋转
4.3.8排列
4.4排序及相关操作
4.4.1全部元素排序
4.4.2局部排序
4.4.3根据某个元素排序
4.4.4堆(Heap)操作
4.4.5合并排序
4.4.6搜索
4.5删除算法
4.6本章小结
第5章 迭代器(Iterator)
5.1迭代器及其特性
5.2头文件﹤iterator﹥简述
5.3迭代器类型详述
5.3.1输入型迭代器
5.3.2输出型迭代器
5.3.3前向迭代器
5.3.4双向迭代器
5.3.5随机存取迭代器
5.3.6 vector迭代器的递增和递减
5.4迭代器配接器
5.4.1逆向迭代器
5.4.2插入型迭代器
5.4.3流迭代器
5.5迭代器辅助函数
5.5.1 advance()迭代器前进函数
5.5.2 distance()迭代器距离
5.5.3 iter_swap()交换两个迭代器所指内容
5.6本章小结
第6章 STL的数值计算
6.1复数运算
6.1.1最简单的复数运算例题
6.1.2复数成员函数
6.1.3复数运算符
6.1.4复数运算
6.1.5复数的超越函数
6.2数组(向量)运算
6.2.1类valarray
6.2.2数组子集类——slice类和类模板slice_array
6.2.3类gslice和类模板gslice_array
6.2.4类mask_array
6.2.5类indirect_array
6.3通用数值计算
6.3.1求和(accumulate)
6.3.2内积(inner_product)
6.3.3部分和(partial_sum)
6.3.4序列相邻差(adjacent difference)
6.4全局性数学函数
6.5本章小结
第7章 输入输出流
7.1 IOStream简介
7.1.1 Stream对象
7.1.2 Stream类别
7.1.3 Stream操作符
7.1.4操控器(Manipulators)
7.2 IOStream基本类和标准IOStream对象
7.2.1头文件
7.2.2标准Stream操作符
7.2.3 Stream状态
7.2.4标准输入和输出函数
7.3格式化
7.3.1格式标志
7.3.2 bool类型数据的格式控制
7.3.3详解“字段宽度、充填字符和位置调整”
7.3.4正记号与大写字符
7.3.5数值进制
7.3.6浮点数输出
7.3.7一般性格式定义
7.4 StreamBuffer类介绍
7.4.1 Stream缓冲区
7.4.2缓冲区迭代器
7.4.3自定义缓冲区
7.5基于字符串的流
7.5.1 streambuf类
7.5.2类模板basic_istringstream
7.5.3类模板basic_ostringstream
7.5.4类模板basic_stringstream
7.6基于文件的流
7.6.1文件标志及其使用
7.6.2随机存取
7.6.3 4个类模板简介
7.6.4 C库中的文件存取功能概述
7.7本章小结
第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.2异常类及几个重要问题
8.2.1类exception
8.2.2调用abort()
8.2.3堆栈解退
8.2.4错误代码
8.2.5异常的迷失
8.2.6异常处理的局限性
8.3处理异常详述
8.3.1异常处理的实现机制
8.3.2异常处理语句的语法
8.3.3异常处理不唤醒
8.3.4函数声明
8.3.5使用异常
8.4异常的特殊处理函数
8.5本章小结
第9章 通用工具
9.1通用工具库简介
9.1.1相等比较
9.1.2小于比较
9.1.3复制构造
9.1.4默认构造
9.1.5配置器要求
9.1.6运算符
9.1.7对组(pairs)
9.2动态内存管理
9.2.1默认配置器
9.2.2 raw storage iterator
9.2.3 temporary buffers(临时缓冲区)
9.2.4特定算法
9.2.5 C函数库中的内存管理函数
9.3堆的内存分配
9.3.1 new和delete运算符
9.3.2分配固定维数的数组
9.3.3分配动态内存数组
9.3.4处理堆耗尽
9.4辅助功能
9.4.1数值极限
9.4.2较大较小值(最大最小值)
9.4.3两值交换
9.4.4辅助性比较
9.4.5头文件cstdlib和cstddef简介
9.5日期和时间
9.5.1 3个类型
9.5.2结构体tm
9.5.3相关时间函数
9.5.4时间示例
9.6模板类auto_ptr
9.6.1 auto_ptr类构造函数
9.6.2类auto_ptr的成员及转换
9.6.3使用auto_ptr类
9.7本章小结
第10章 语言支持
10.1类型
10.2执行属性
10.2.1类模板numeric_limits及其成员
10.2.2 float round_style和float_denorm_style
10.2.3数值极限的特化
10.2.4库函数
10.2.5应用举例
10.3程序的启动和终止
10.4动态内存管理
10.4.1内存的分配和释放
10.4.2内存分配错误
10.4.3应用举例
10.5类型标识符
10.5.1类type_info
10.5.2类bad_cast
10.5.3类bad_typeid
10.5.4操作符typeid
10.5.5操作符dynamic_cast
10.5.6应用举例
10.6异常处理
10.6.1异常类(class exception)
10.6.2 violating exception-specifications
10.6.3 abnormal termination
10.6.4未捕获异常(uncaught exception)
10.6.5应用举例
10.7其他运行支持
10.7.1概述
10.7.2应用举例
10.8本章小结
第11章 检测库详解
11.1异常类Exception
11.1.1 logic_error类
11.1.2 domain_error类
11.1.3 invali_argument类
11.1.4 length_error类
11.1.5 out_of_range类
11.1.6 runtime_error类
11.1.7 range_error类
11.1.8 overflow_error类
11.1.9 underflow_error(下溢出)类
11.2 assertions(断言)
11.3错误编码
11.4本章小结
第12章 国际化库详解
12.1国际化元素
12.2多种字符编码
12.2.1宽字符和多字节文本
12.2.2字符特性
12.2.3特殊字符国际化
12.3类locale
12.3.1类locale概述
12.3.2类locale的facet
12.3.3区域表示和混合区域表示
12.3.4流和区域
12.3.5刻面的处理
12.4标准locale的分类
12.4.1 ctype类
12.4.2数值类的locale类
12.4.3刻面numeric punctuation
12.4.4 collate类
12.4.5 time类(category)
12.4.6 C库locale
12.5本章小结
第13章 仿函数
13.1仿函数的概述
13.1.1仿函数的概念
13.1.2仿函数的作用
13.2预定义仿函数
13.3辅助用仿函数
13.3.1一元组合函数配接器
13.3.2二元组合函数配接器
13.4关系仿函数
13.4.1等于(equal_to﹤type﹥())
13.4.2不等于(not_equal_to﹤type﹥())
13.4.3小于(less﹤type﹥())
13.4.4大于(greater﹤type﹥())
13.4.5大于等于(greater_equal)和小于等于(less_equal)
13.5逻辑仿函数
13.5.1谓词
13.5.2逻辑仿函数
13.6算术仿函数
13.6.1加减乘除运算仿函数(plus)
13.6.2“求余”仿函数和“求反”仿函数
13.7其他类型的仿函数
13.7.1证和映射
13.7.2仿函数hash和subtractive_mg
13.8适配器
13.8.1成员函数适配器
13.8.2其他适配器
13.9本章小结
第14章 配置器
14.1使用配置器
14.2 C++标准程序库的默认配置器(标准配置器)
14.3自定义配置器
14.4配置类的详细讨论
14.4.1型别
14.4.2配置类的成员函数
14.4.3广义配置器
14.4.4动态存储
14.4.5 C风格的分配
14.5未初始化的内存
14.6配置器举例
14.7本章小结
参考文献