本书着重讨论了C+十类和算法组件的各个方面。在每方面,除了介绍一些基础知识外,还提供了大量的示例程序,以指导读者学习使用功能强大的类库。需要集成Java程序和C+十程序的Java程序员将在本书中找到标准C+十类、类属性、类方法的完整描述和详细文档资料。本书条理清晰,语言简练,适用于初学者和高级程序设计人员。
目录
- 第一章 C++类库概述
- 1.1 C++标准类库:功能视图
- 1.1.1 面向对象的输入/输出
- l.1.2 容器类和ADT(抽象数据类型)
- 1.1.3 重要的新ADT(抽象数据类型)
- 1.1.4 存储管理类
- 1.2 标准C++类库的结构视图
- 1.2、1 什么是标准面向对象程序设计方法
- 1.2.2 通用性
- l.2.3 面向对象的程序设计方法和生成式程序设计方法
- 1.2.4 接日视图
- 1.3 C++语言与标准软件设计(lego)
- 第二章 类的内部结构(Anatomy)
- 2.1 标准C++类库类
- 2.1.1 具体类
- 2.1.2 抽象类
- 2.1.3 接日(适配子)类
- 2.1.4 节点类
- 2.1.5 支持/实用类
- 2.1.6 迭代子类
- 2.1.7 分配器类
- 2.1.8 参数化(模板)类
- 2.l.9 领域关
- 2.2 属性(attribute)、特性(characteristic)和方法(method)
- 2.2.1 私有方式
- 2.2.2 只有成员可以访问
- 2.2.3 对公共开放
- 2.3 小结
- 第三章 IO流(iostreams)
- 3.1 类和IO流
- 3.1.1 流状态组件
- 3.1.2 缓冲组件
- 3.1.3 转换组件
- 3.l.4 流状态类ios_base<T>和basic_ios<T>
- 3.l.5 缓冲类basic_streambuf,basic_filebuf,basic_stringbuf
- 3.1.6 转换类basic_istream和basic_ostream
- 3.2 面向对象的输入l输出
- 3.2.1 抽取符(extractors)
- 3.2.2 cout,wcout和inserters
- 3.3 IO流类层次结构
- 3.4 IO流类型定义(typedefs)
- 3.4.1 basic_streambuf类
- 3.5 最基本的基类ios_base
- 3.5.1 构造basic_ios(ios)对象
- 3.5.2 打开(open)模式
- 3.5.3 ios类的缓冲组件
- 3.5.4 ios类的缓冲状态组件
- 3.5.5 ios类的格式状态(format state)组件
- 3.6 一个面向对象的输入模型
- 3.6.1 构造一个istream对象
- 3.6.2 istream访问函数:流抽取和对象转化
- 3.6.3 抽取运算符
- 3.6.4 抽取转化(translation)和换算(conversion)
- 3.6.5 非格式化抽取
- 3.6.6 岗哨(SClltry)对象及ipfX()、isfX()前缀和后缀方法
- 3.7 一个面向对象的输出模式类basic_ostream
- 3.7.1 一个ostream对象的构造
- 3.7.2 插入运算符
- 3.7.3 插人转化和换算
- 3.7.4 basic_ostream类访问函数
- 3.7.5 类iostream=basic_istream+basic_ostream
- 3.7.6 岗哨(sentry)对象及opfx()、osfx()前缀和后缀方法
- 3.8 类ifstream
- 3.8.1 构造ifstream对象
- 3.8.2 访问ifstream类缓冲的方法
- 3.8.3 使用ifstream对象
- 3.8.4 面向对象输出文件的oftream类
- 3.8.5 构造ofstreaxn对象
- 3.8.6 访问ofstream类缓冲的方法
- 3.8.7 类fstream=ifstream+ofstream
- 3.9 文件
- 3.9.1 打开和关闭文件
- 3.9.2 写文本文件
- 3.9.3 读文本文件
- 3.9.4 写二进制文件
- 3.9.5 读二进制文件
- 3.9.6 对二进制文件进行对象的读写
- 3.9.7 类istringstream(内存设备)
- 3.9.8 构造istnngstream对象
- 3.9.9 类ostungstream
- 3.9.10 类stnngstrealn=istringstream+ostnngstrealn
- 3.10 控制器(manipulators)
- 3.10.l 换行(new-line)控制器endl
- 3.10.2 空(null〕控制器ends
- 3.10.3 刷新流
- 3.10.4 数字格式化控制器
- 3.10.5 跳过空白区(whitespaces)
- 3.10.6 标志控制器
- 3.10.7 填补(Padding)和填充(fill)控制器
- 3.11 小结
- 第四章 串(string)类
- 4.l 串的概念
- 4.1.1 串的表示
- 4.1.2 串类
- 4.2 基本串类
- 4.2.1 基本串类模板参数
- 4.2.2 串类服务
- 4.2.3 串对象的构造
- 4.2.4 用子串构造串对象
- 4.2.5 串分配
- 4.2.6 访问串数据组件
- 4.2.7 访问字符序列
- 4.2.8 访问于串
- 4.2.9 访问有关串对象的信息
- 4.2.10 串对象的内存管理
- 4.2.11 拷贝(copying)和交换(swapping)
- 4.2.12 异常处理
- 4.3 串类的扩展
- 4.4 小结
- 第五章 异常(exception)类
- 5.1什么是软件错误(SofewareError)
- 5.1.1 软件规范(Specifications)
- 5.2 软件失败和异常
- 5.3 测试(testing)、调试(debugging)和异常处理定义
- 5.3.1 错误处理的一般方法
- 5.4 异常类层次结构
- 5.4.1 logic_error类
- 5.4.2 runtime_error类
- 5.4.3 为异常类族分类
- 5.4.4 构造异常类
- 5.4.5 析构异常类
- 5.4.6 赋值和异常类
- 5.5 使用异常类
- 5.5.1 管理异常类
- 5.5.2 具体化(specializing)异常类
- 5.6 处理异常
- 5.6.1 重执模式
- 5.1.2 终止模式
- 5.7 小结
- 第六章 RuntimeTypeInformation类
- 6.l 运行类型信息
- 6.1.1 type_info类
- 6.l.2 bad_typeid类
- 6.1.3 动态强制转换(casting)和bad_cast类
- 6.2 小结
- 第七章 标准C+十容器
- 7.1 什么是容器
- 7.1.1 容器类体系结构
- 7.2 顺序存储对象
- 7.2.1 容器和接日视图
- 7.2.2 所有容器公用的通用方法和运算符
- 7.2.3 所有顺序容器公用的通用方法
- 7.2.4 所有联合容器公用的通用方法
- 7.3 容器和自动存储管理
- 7.4 使用顺序容器
- 7.4.1 顺序容器的接曰协议
- 7.4.2 构造顺序容器
- 7.4.3 顺序容器和动态分配
- 7.4.4 构顺序容器
- 7.4.5 顺序插入修改方法
- 7.4.6 顺序删除修改方法
- 7.4.1 其他顺序容器访问方法
- 7.4.8 顺序容器迭代访问方法
- 7.5 面向对象向量
- 7.5.1 为什么向量是很有用的
- 7.5.2 构造一个向量
- 7.5.3 析构一个向量
- 7.5.4 访问向量信息
- 7.5.5 使用修改方法向向量放置对象
- 7.5.6 从容器中移走对象
- 7.5.7 从向量访问对象
- 7.5.8 向量类型的关系操作
- 7.6 双端队列
- 7.1.l 面向对象的队列、优先队列和双端队列
- 7.6.2 标准双端队列
- 7.6.3 构造双端队列
- 7.6.4 访问双端队列信息
- 7.6.5 使用修改方法来向双端队列插入对象
- 7.6.6 双端队列对象访问方法
- 7.7 容器类库适配于(adaptor)
- 7.7.1 什么是适配子
- 7.8 面向对象的堆栈
- 7.8.1 标准堆栈
- 7.9 标准队列
- 7.9.1 优先队列
- 7.10 联合容器
- 7.10.1 使用联合容器
- 7.10.2 标准联合容器的构造函数和析构函数
- 7.10.3 联合容器的插入修改方法
- 7.10.4 联合容器的删除修改方法
- 7.10.5 联合容器的迭代子访问方法
- 7.11 集合容器
- 7.11.1 集合从属关系
- 7.11.2 通用集合对象类型
- 7.12 什么是面向对象的集合
- 7.12.1 集合的逻辑表示和实现
- 7.13 标准集合容器.
- 7.13.1 对于内置类型的客户职责
- 7.13.2 对于用户定义类型的客户职责
- 7.13.3 集合的构造函数
- 7.13.4 集合的析构函数
- 7.13.5 集合容器信息的访问
- 7.14 标准多重集容器.
- 7.14.l 多重集的插人修改方法
- 7.14.2 多重集的insert()修改方法
- 7.14.3 多重集的erase()修改方法
- 7.14.4 多重集的访问方法
- 7.14.5 多重集的运算符
- 7.15 关系、映像和多重映像
- 7.15.1 映像容器
- 7.15.2 标准映像容器
- 7.15.3 映像的构造函数
- 7.15.4 映像的析构函数
- 7.15.5 映像的信息访问方法
- 7.15.6 映像的插入修改方法
- 7.15.7 erase()修改方法
- 7.15.8 映像对象的访问方法
- 7.16 映像容器的运算符和操作
- 7.17 多重映像容器类.
- 7.17.1 标准多重映像容器
- 7.17.2 多重映像的构造函数
- 7.17.3 多重映像的析构函数
- 7.17.4 多重映像容器的信息访问方法
- 7.17.5 多重映像容器的修改方法
- 7.17.6 多重映像容器的其他访问方法
- 7.18 多重映像容器的运算符和操作
- 7.19 小结
- 第八章 迭代子
- 8.1 迭代子处理:顺序和直接访问
- 8.2 使用标准C++库迭代子
- 8.2.1 迭代子分类
- 8.3 迭代子和容器类
- 8.3.1 恒定和可变的选代子
- 8.4 迭代子适配器
- 8.5 预定义的迭代子类
- 8.5.1 迭代子特性和迭代于类
- 8.5.2 流和流缓冲区迭代子
- 8.5.3 插入迭代子
- 8.5.4 反向迭代子
- 8.5.5全局方法advance()和distance()
- 8.6 小结
- 第九章 算法库
- 9.1 什么是算法(Algorithms)
- 9.2 算法的重要性
- 9.3 算法的通用性
- 9.4 C++标准算法
- 9.4.1 算法的参数
- 9.5 查找算法
- 9.5.1 顺序查找法
- 9.1.2 对分查找
- 9.1.3 查找用户自定义的对象
- 9.6 排序算法
- 9.6.1 排序特征
- 9.6.2 空间需求
- 9.6.3 排序的稳定性
- 9.6.4 标准类库排序的分类
- 9.6.5 排序算法的使用
- 9.7 集合算法
- 9.7.1 集合操作
- 9.8 容器管理算法
- 9.9 算法设计的考虑
- 9.9.1 所有算法的5种需要
- 9.9.2 算法和类方法的关系
- 9.9.3 算法组件
- 9.10 小结
- 第十章 内存管理
- 10.1 C++中的动态内存分配
- 10.1.1 C++中的静态内存分配
- 10.1.2 对象的动态内存分配
- 10.2 分配算符类
- IO.2.1 分配算符类
- 10.2.2 分配算符类型定义成员
- 10.2.3 分配算符类的成员函数
- 10.3 Auto_ptr类
- 10.3.1 autoxtr对象的构造函数
- 10.3.2 使用auto_ptr
- 10.4 小结
- 第十一章 数字(numerics)类
- 11.1 数值界限(numeric_limits)类
- 11.2 数值数组(valarrny)类
- 11.2.1 数值数组类组
- 11.2.2 向量操作与数值数组类
- 11.2.3 构造数组对象
- 11.2.4 重要的数值数组访问方法
- 11.2.5 数值数组的修改
- 11.3 复数(complex)类
- 11.4 小结
- 第十二章 语言支持
- 12.1 国际化与本地化
- 12.2 标准C++类的国际化支持
- 12.2.1 facet类
- 12.2.2 比较(collate)facet类
- 12.2.3 Ctype facet类
- 12.2.4 数字facet类
- 12.2.5 货币(monetary)facet类
- 12.2.6 时间facet类
- 12.2.7 消息facet类
- 12.3 创建并使用方面对象
- 12.4 现场(locale)类
- 12.4.1 构造现场对象
- 12.4.2 现场运算符
- 12.4.3 全局的和典型的现场
- 12.4.4 访问现场方面
- 12.4.5 流的方面
- 12.5 Char_traitS类
- 12.5.1 char_traits的方法
- 12.6 小结
- 第十三章 用Java连接(interfacing)C++
- 13.1 Java API
- 13.2 C++与Java的通信
- 13.3 Java本地接口(Java Native Interface)
- 13.3.1 请求API
- 13.4 一个JNI的例子
- 第十四章 综述
- 14.1 新的ANSI/ISO标准
- 14.2 IO流类的变化
- 14.2.1 注意Narrow与Wide的差异
- 14.2.2 IO流的类型定义(typedef)
- 14.2.3 新的缺省流声明
- 14.2.4 IO流和异常
- 14.3 新类
- 14.4 标准C++类库的3个视图(view)
- 14.4.1 新的体系结构视图
- 14.4.2 接口视图
- 14.5 标准C++类和Java类集成
- 14.6 图示C++类和对象层次结构
- 14.7 编译器的兼容性、可移植性和展望
- 14.8 仅仅是个开始