《掌握标准C++类》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:(美)(C.休斯)Cameron Hughes,(美)(T.休斯)Tracey Hughes著;健莲科技译
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2000
  • ISBN:7115084564
  • 页数:470 页
图书介绍:

前言页 1

第一章 C++类库概述 1

1.1 C++标准类库:功能视图 2

1.1.1 面向对象的输入/输出 2

1.1.2 容器类和ADT(抽象数据类型) 7

1.1.3 重要的新ADT(抽象数据类型) 12

1.1.4 存储管理类 20

1.2 标准C++类库的结构视图 28

1.2.1 什么是标准面向对象程序设计方法 30

1.2.2 通用性 32

1.2.3 面向对象的程序设计方法和生成式程序设计方法 33

1.2.4 接口视图 34

1.3 C++语言与标准软件设计(lego) 40

第二章 类的内部结构(Anatomy) 43

2.1 标准C++类库类 44

2.1.1 具体类 46

2.1.2 抽象类 47

2.1.3 接口(适配子)类 48

2.1.4 节点类 50

2.1.5 支持/实用类 51

2.1.6 迭代子类 52

2.1.7 分配器类 54

2.1.8 参数化(模板)类 54

2.1.9 领域类 58

2.2 属性(attribute)、特性(characteristic)和方法(method) 59

2.2.1 私有方式 63

2.2.2 只有成员可以访问 64

2.2.3 对公共开放 64

2.3 小结 64

第三章 IO流(iostreams) 67

3.1 类和IO流 68

3.1.1 流状态组件 69

3.1.2 缓冲组件 69

3.1.3 转换组件 69

3.1.4 流状态类ios_base<T>和basic_ios<T> 70

3.1.5 缓冲类basic_streambuf, basic_filebuf, basic_stringbuf 71

3.1.6 转换类basic_istream和basic_ostream 71

3.2 面向对象的输入/输出 72

3.2.1 抽取符(extractors) 73

3.2.2 cout, wcout和inserters 74

3.3 IO流类层次结构 75

3.4 IO流类型定义(typedefs) 77

3.4.1 basic_streambuf类 77

3.5 最基本的基类ios_base 82

3.5.1 构造basic_ios(ios)对象 84

3.5.2 打开(open)模式 85

3.5.3 ios类的缓冲组件 87

3.5.4 ios类的缓冲状态组件 87

3.5.5 ios类的格式状态(format state)组件 88

3.6 一个面向对象的输入模型 95

3.6.1 构造一个istream对象 96

3.6.2 istream访问函数:流抽取和对象转化 97

3.6.3 抽取运算符 97

3.6.4 抽取转化(translation)和换算(conversion) 98

3.6.5 非格式化抽取 99

3.6.6 岗哨(sentry)对象及ipfx()、isfx()前缀和后缀方法 104

3.7 一个面向对象的输出模式类basic_ostream 104

3.7.1 一个ostream对象的构造 105

3.7.2 插入运算符 105

3.7.3 插入转化和换算 106

3.7.4 basic_ostream类访问函数 108

3.7.5 类iostream=basic_istream+basic_ostream 109

3.7.6 岗哨(sentry)对象及opfx()、osfx()前缀和后缀方法 109

3.8 类ifstream 110

3.8.1 构造ifstream对象 111

3.8.2 访问ifstream类缓冲的方法 112

3.8.3 使用ifstream对象 112

3.8.4 面向对象输出文件的oftream类 115

3.8.5 构造ofstream对象 116

3.8.6 访问ofstream类缓冲的方法 119

3.8.7 类fstream=ifstream + ofstream 119

3.9 文件 119

3.9.1 打开和关闭文件 120

3.9.2 写文本文件 121

3.9.3 读文本文件 121

3.9.4 写二进制文件 122

3.9.5 读二进制文件 123

3.9.6 对二进制文件进行对象的读写 123

3.9.7 类istringstream(内存设备) 124

3.9.8 构造istringstream对象 125

3.9.9 类ostringstream 125

3.9.10 类stringstream=istringstream + ostringstream 127

3.10 控制器(manipulators) 130

3.10.1 换行(new-line)控制器endl 131

3.10.2 空(null)控制器ends 131

3.10.3 刷新流 131

3.10.4 数字格式化控制器 132

3.10.5 跳过空白区(whitc spaces) 132

3.10.6 标志控制器 132

3.10.7 填补(padding)和填充(fill)控制器 133

3.11 小结 135

第四章 串(string)类 137

4.1 串的概念 137

4.1.1 串的表示 139

4.1.2 串类 141

4.2 基本串类 144

4.2.1 基本串类模板参数 144

4.2.2 串类服务 145

4.2.3 串对象的构造 145

4.2.4 用子串构造串对象 148

4.2.5 串分配 149

4.2.6 访问串数据组件 150

4.2.7 访问字符序列 150

4.2.8 访问子串 151

4.2.9 访问有关串对象的信息 153

4.2.10 串对象的内存管理 154

4.2.11 拷贝(copying)和交换(swapping) 156

4.2.12 异常处理 157

4.3 串类的扩展 159

4.4 小结 161

第五章 异常(exception)类 163

5.1 什么是软件错误(Sofeware Error) 163

5.1.1 软件规范(Specifications) 164

5.2 软件失败和异常 165

5.3 测试(testing)、调试(debugging)和异常处理定义 166

5.3.1 错误处理的一般方法 166

5.4 异常类层次结构 167

5.4.1 logic_error类 168

5.4.2 runtime_error类 168

5.4.3 为异常类族分类 170

5.4.4 构造异常类 170

5.4.5 析构异常类 171

5.4.6 赋值和异常类 171

5.5 使用异常类 171

5.5.1 管理异常类 172

5.5.2 具体化(specializing)异常类 172

5.6 处理异常 175

5.6.1 重执模式 176

5.6.2 终止模式 176

5.7 小结 177

第六章 Runtime Type Information类 179

6.1 运行类型信息 180

6.1.1 type_info类 182

6.1.2 bad_typeid类 183

6.1.3 动态强制转换(casting)和bad_cast类 184

6.2 小结 186

第七章 标准C++容器 189

7.1 什么是容器 189

7.1.1 容器类体系结构 190

7.2 顺序存储对象 191

7.2.1 容器和接口视图 192

7.2.2 所有容器公用的通用方法和运算符 192

7.2.3 所有顺序容器公用的通用方法 195

7.2.4 所有联合容器公用的通用方法 196

7.3 容器和自动存储管理 197

7.4 使用顺序容器 198

7.4.1 顺序容器的接口协议 198

7.4.2 构造顺序容器 198

7.4.3 顺序容器和动态分配 201

7.4.4 析构顺序容器 203

7.4.5 顺序插入修改方法 203

7.4.6 顺序删除修改方法 203

7.4.7 其他顺序容器访问方法 204

7.4.8 顺序容器迭代访问方法 204

7.5 面向对象向量 208

7.5.1 为什么向量是很有用的 209

7.5.2 构造一个向量 209

7.5.3 析构一个向量 210

7.5.4 访问向量信息 211

7.5.5 使用修改方法向向量放置对象 214

7.5.6 从容器中移走对象 215

7.5.7 从向量访问对象 215

7.5.8 向量类型的关系操作 218

7.6 双端队列 218

7.6.1 面向对象的队列、优先队列和双端队列 218

7.6.2 标准双端队列 220

7.6.3 构造双端队列 220

7.6.4 访问双端队列信息 220

7.6.5 使用修改方法来向双端队列插入对象 221

7.6.6 双端队列对象访问方法 221

7.7 容器类库适配子(adaptor) 224

7.7.1 什么是适配子 225

7.8 面向对象的堆栈 228

7.8.1 标准堆栈 229

7.9 标准队列 230

7.9.1 优先队列 232

7.10 联合容器 232

7.10.1 使用联合容器 233

7.10.2 标准联合容器的构造函数和析构函数 236

7.10.3 联合容器的插入修改方法 241

7.10.4 联合容器的删除修改方法 241

7.10.5 联合容器的迭代子访问方法 242

7.11 集合容器 242

7.11.1 集合从属关系 243

7.11.2 通用集合对象类型 245

7.12 什么是面向对象的集合 246

7.12.1 集合的逻辑表示和实现 246

7.13 标准集合容器 248

7.13.1 对于内置类型的客户职责 249

7.13.2 对于用户定义类型的客户职责 249

7.13.3 集合的构造函数 250

7.13.4 集合的析构函数 251

7.13.5 集合容器信息的访问 251

7.14 标准多重集容器 258

7.14.1 多重集的插入修改方法 258

7.14.2 多重集的insert()修改方法 258

7.14.3 多重集的erase()修改方法 259

7.14.4 多重集的访问方法 259

7.14.5 多重集的运算符 260

7.15 关系、映像和多重映像 260

7.15.1 映像容器 262

7.15.2 标准映像容器 262

7.15.3 映像的构造函数 264

7.15.4 映像的析构函数 266

7.15.5 映像的信息访问方法 266

7.15.6 映像的插入修改方法 266

7.15.7 erase()修改方法 267

7.15.8 映像对象的访问方法 267

7.16 映像容器的运算符和操作 270

7.17 多重映像容器类 270

7.17.1 标准多重映像容器 271

7.17.2 多重映像的构造函数 271

7.17.3 多重映像的析构函数 272

7.17.4 多重映像容器的信息访问方法 272

7.17.5 多重映像容器的修改方法 272

7.17.6 多重映像容器的其他访问方法 273

7.18 多重映像容器的运算符和操作 274

7.19 小结 274

第八章 迭代子 275

8.1 迭代子处理:顺序和直接访问 277

8.2 使用标准C++库迭代子 278

8.2.1 迭代子分类 281

8.3 迭代子和容器类 292

8.3.1 恒定和可变的迭代子 296

8.4 迭代子适配器 297

8.5 预定义的迭代子类 299

8.5.1 迭代子特性和迭代子类 299

8.5.2 流和流缓冲区迭代子 300

8.5.3 插入迭代子 307

8.5.4 反向迭代子 311

8.5.5 全局方法advance()和distance() 317

8.6 小结 318

第九章 算法库 321

9.1 什么是算法(Algorithms) 321

9.2 算法的重要性 322

9.3 算法的通用性 329

9.4 C++标准算法 329

9.4.1 算法的参数 331

9.5 查找算法 348

9.5.1 顺序查找法 350

9.5.2 对分查找 352

9.5.3 查找用户自定义的对象 354

9.6 排序算法 362

9.6.1 排序特征 364

9.6.2 空间需求 364

9.6.3 排序的稳定性 365

9.6.4 标准类库排序的分类 366

9.6.5 排序算法的使用 367

9.7 集合算法 368

9.7.1 集合操作 370

9.8 容器管理算法 373

9.9 算法设计的考虑 376

9.9.1 所有算法的5种需要 376

9.9.2 算法和类方法的关系 377

9.9.3 算法组件 380

9.10 小结 383

第十章 内存管理 385

10.1 C++中的动态内存分配 386

10.1.1 C++中的静态内存分配 387

10.1.2 对象的动态内存分配 388

10.2 分配算符类 389

10.2.1 分配算符类 391

10.2.2 分配算符类型定义成员 393

10.2.3 分配算符类的成员函数 394

10.3 Auto_ptr类 399

10.3.1 auto_ptr对象的构造函数 400

10.3.2 使用auto_ptr 403

10.4 小结 406

第十一章 数字(numerics)类 409

11.1 数值界限(numeric_limits)类 409

11.2 数值数组(valarray)类 412

11.2.1 数值数组类组 412

11.2.2 向量操作与数值数组类 413

11.2.3 构造数组对象 416

11.2.4 重要的数值数组访问方法 416

11.2.5 数值数组的修改 417

11.3 复制(complex)类 418

11.4 小结 421

第十二章 语言支持 423

12.1 国际化与本地化 424

12.2 标准C++类的国际化支持 425

12.2.1 facet类 426

12.2.2 比较(collate)facet类 429

12.2.3 Ctype facet类 432

12.2.4 数字facet类 434

12.2.5 货币(monetary)facet类 437

12.2.6 时间facet类 438

12.2.7 消息facet类 439

12.3 创建并使用方面对象 440

12.4 现场(locale)类 441

12.4.1 构造现场对象 442

12.4.2 现场运算符 443

12.4.3 全局的和典型的现场 443

12.4.4 访问现场方面 444

12.4.5 流的方面 444

12.5 char_traits类 445

12.5.1 char_traits的方法 446

12.6 小结 447

第十三章 用Java连接(interfacing)C++ 449

13.1 Java API 450

13.2 C++与Java的通信 450

13.3 Java本地接口(Java Native Interface) 451

13.3.1 请求API 451

13.4 一个JNI的例子 458

第十四章 综述 463

14.1 新的ANSI/ISO标准 463

14.2 IO流类的变化 464

14.2.1 注意Narrow与Wide的差异 464

14.2.2 IO流的类型定义(typedef) 464

14.2.3 新的缺省流声明 466

14.2.4 IO流和异常 466

14.3 新类 466

14.4 标准C++类库的3个视图(view) 466

14.4.1 新的体系结构视图 467

14.4.2 接口视图 467

14.5 标准C++类和Java类集成 468

14.6 图示C++类和对象层次结构 468

14.7 编译器的兼容性、可移植性和展望 469

14.8 仅仅是个开始 469