图书介绍
C++标准程序库 自修教程与参考手册pdf电子书版本下载
- (德)Nicolai M. Josuttis著;侯捷,孟岩译 著
- 出版社: 武汉:华中科技大学出版社
- ISBN:7560927823
- 出版时间:2002
- 标注页数:799页
- 文件大小:24MB
- 文件页数:826页
- 主题词:
PDF下载
下载说明
C++标准程序库 自修教程与参考手册PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
1.1 缘起 1
1.2 阅读前的必要基础 2
1.3 本书风格与结构 2
1.4 如何阅读本书 5
1.5 目前发展形势 5
1.6 范例程序代码及额外信息 5
1.7 响应 5
2.C++及其标准程序库简介 7
2.1 沿革 7
2.2.1 template(模板) 9
2.2 新的语言特性 9
2.2.2 基本型别的显式初始化(Explicit Initialization) 14
2.2.3 异常处理(Exception Handling) 15
2.2.4 命名空间(Namespaces) 16
2.2.5 bool型别 18
2.2.6 关键字explicit 18
2.2.7 新的型别转换操作符(Type Conversion Operators) 19
2.2.8 常数静态成员(Constant Static Members)的初始化 20
2.2.9 main()的定义式 21
2.3 复杂度和Big-O表示法 21
3.1 命名空间(namespace)std 23
3.一般概念(General Concepts) 23
3.2 头文件(Header Files) 24
3.3 错误(Error)处理和异常(Exception)处理 25
3.3.1 标准异常类别(Standard Exception Classes) 25
3.3.2 异常类别(Exception Classes)的成员 28
3.3.3 抛出标准异常 29
3.3.4 从标准异常类别(Exception Classes)中派生新类别 30
3.4 配置器(Allocators) 31
4.通用工具(Utilities) 33
4.1 Pairs(对组) 33
4.1.1 便捷函数make_pair() 36
4.1.2 Pair运用实例 37
4.2 Class auto ptr 38
4.2.1 auto_ptr的设计动机 38
4.2.2 auto_ptr拥有权(Ownership)的转移 40
4.2.3 auto_ptrs作为成员之一 44
4.2.4 auto_ptrs的错误运用 46
4.2.5 auto_ptr运用实例 47
4.2.6 auto_ptr实作细目 51
4.3 数值极限(Numeric Limits) 59
4.4 辅助函数 66
4.4.1 挑选较小值和较大值 66
4.4.2 两值互换 67
4.5 辅助性的“比较操作符”(Comparison Operators) 69
4.6 头文件〈cstddef〉和〈cstdlib〉 71
4.6.1 〈cstddef〉内的各种定义 71
4.6.2 〈cstdlib〉内的各种定义 71
5.Standard Template Library(STL,标准模板库) 73
5.1 STL组件(STL Components) 73
5.2 容器(Containers) 75
5.2.1 序列式容器(Sequence Containers) 76
5.2.2 关联式容器(Associative Containers) 81
5.2.3 容器配接器(Container Adapters) 82
5.3 迭代器(Iterators) 83
5.3.1 关联式容器的运用实例 86
5.3.2 迭代器分类(Iterator Categories) 93
5.4 算法(Algorithms) 94
5.4.1 区间(Ranges) 97
5.4.2 处理多个区间 101
5.5 迭代器之配接器(Iterator Adapters) 104
5.5.1 Insert Iterators(安插型迭代器) 104
5.5.2 Stream Iterators(流迭代器) 107
5.5.3 Reverse Iterators(逆向迭代器) 109
5.6.1 移除(Removing)元素 111
5.6 更易型算法(Manipulating Algorithms) 111
5.6.2 更易型算法和关联式容器 115
5.6.3 算法vs.成员函数 116
5.7 使用者自定义之泛型函数(User-Defined Generic Functions) 117
5.8 以函数作为算法的参数 119
5.8.1 “以函数作为算法的参数”实例示范 119
5.8.2 判断式(Predicates) 121
5.9 仿函数(Functors,Function Objects) 124
5.9.1 什么是仿函数 124
5.9.2 预先定义的仿函数 131
5.10.1 容器元素的条件 134
5.10 容器内的元素 134
5.10.2 Value语意vs.Reference语意 135
5.11 STL内部的错误处理和异常处理 136
5.11.1 错误处理(Error Handling) 137
5.11.2 异常处理(Exception Handling) 139
5.12 扩展STL 141
6.STL容器(STL Container) 143
6.1 容器的共通能力和共通操作 144
6.1.1 容器的共通能力 144
6.1.2 容器的共通操作 144
6.2 Vectors 148
6.2.1 Vectors的能力 148
6.2.2 Vector的操作函数 150
6.2.3 将Vectors当做一般Arrays使用 155
6.2.4 异常处理(Exception Handling) 155
6.2.5 Vectors运用实例 156
6.2.6 Class vector〈bool〉 158
6.3 Deques 160
6.3.1 Deques的能力 161
6.3.2 Deques的操作函数 162
6.3.3 异常处理(Exception Handling) 164
6.3.4 Deques运用实例 164
6.4.1 Lists的能力 166
6.4 Lists 166
6.4.2 Lists的操作函数 167
6.4.3 异常处理(Exception Handling) 172
6.4.4 Lists运用实例 172
6.5 Sets和Multisets 175
6.5.1 Sets和Multisets的能力 176
6.5.2 Sets和Multisets的操作函数 177
6.5.3 异常处理(Exception Handling) 185
6.5.4 Sets和Multisets运用实例 186
6.5.5 执行期指定排序准则 191
6.6 Maps和Multimaps 194
6.6.1 Maps和Multimaps的能力 195
6.6.2 Maps和Multimaps的操作函数 196
6.6.3 将Maps视为关联式数组(Associated Arrays) 205
6.6.4 异常处理(Exception Handling) 207
6.6.5 Maps和Multimaps运用实例 207
6.6.6 综合实例:运用Maps,Strings并于执行期指定排序准则 213
6.7 其它STL容器 217
6.7.1 Strings可被视为一种STL容器 217
6.7.2 Arrays可被视为一种STL容器 218
6.7.3 Hash Tables 221
6.8 动手实现Reference语义 222
6.9 各种容器的运用时机 226
6.10.1 容器内的型别 230
6.10 细说容器内的型别和成员 230
6.10.2 生成(Create)、复制(Copy)、销毁(Destroy) 231
6.10.3 非变动性操作(Nonmodifying Operations) 233
6.10.4 赋值(Assignments) 236
6.10.5 直接元素存取 237
6.10.6 “可返回迭代器”的各项操作 239
6.10.7 元素的安插(Inserting)和移除(Removing) 240
6.10.8 Lists的特殊成员函数 244
6.10.9 对配置器(Allocator)的支持 246
6.10.10 综观STL容器的异常处理 248
7.2 迭代器类型(Iterator Categories) 251
7.STL迭代器(STL Iterators) 251
7.1 迭代器头文件 251
7.2.1 Input(输入)迭代器 252
7.2.2 Output(输出)迭代器 253
7.2.3 Forward(前向)迭代器 254
7.2.4 Bidirectional(双向)迭代器 255
7.2.5 Random Access(随机存取)迭代器 255
7.2.6 Vector迭代器的递增(Increment)和递减(Decrement) 258
7.3 迭代器相关辅助函数 259
7.3.1 advance()可令迭代器前进 259
7.3.2 distance()可处理迭代器之间的距离 261
7.3.3 iter_swap()可交换两个迭代器所指内容 263
7.4 迭代器配接器(Iterator Adapters) 264
7.4.1 Reverse(逆向)迭代器 264
7.4.2 Insert(安插型)迭代器 271
7.4.3 Stream(流)迭代器 277
7.5 迭代器特性(Iterator Traits) 283
7.5.1 为迭代器编写泛型函数 285
7.5.2 使用者自定义(User-Defined)的迭代器 288
8.STL仿函数(functors)(又名函数对象,function objects) 293
8.1 仿函数(functor)的概念 293
8.1.1 仿函数可当做排序准则(Sort Criteria) 294
8.1.2 拥有内部状态(Internal State)的仿函数 296
8.1.3 for_each()的回返值 300
8.1.4 判断式(Predicates)和仿函数(Functors) 302
8.2 预定义的仿函数 305
8.2.1 函数配接器(Function Adapters) 306
8.2.2 针对成员函数而设计的函数配接器 307
8.2.3 针对一般函数(非成员函数)而设计的函数配接器 309
8.2.4 让自定仿函数也可以使用函数配接器 310
8.3 辅助用(组合型)仿函数 313
8.3.1 一元组合函数配接器(Unary Compose Function Object Adapters) 314
8.3.2 二元组合函数配接器(Binary Compose Function Object Adapters) 318
9.1 算法头文件(header files) 321
9.STL算法(STL Algorithms) 321
9.2 算法概览 322
9.2.1 简介 322
9.2.2 算法分门别类 323
9.3 辅助函数 332
9.4 for_each()算法 334
9.5 非变动性算法(Nonmodifying Algorithms) 338
9.5.1 元素计数 338
9.5.2 最小值和最大值 339
9.5.3 搜寻元素 341
9.5.4 区间的比较 356
9.6 变动性算法(Modifying Algorithms) 363
9.6.1 复制(Copying)元素 363
9.6.2 转换(Transforming)和结合(Combining)元素 366
9.6.3 互换(Swapping)元素内容 370
9.6.4 赋予(Assigning)新值 372
9.6.5 替换(Replacing)元素 375
9.7 移除性算法(Removing Algorithms) 378
9.7.1 移除某些特定元素 378
9.7.2 移除重复元素 381
9.8.1 逆转(Reversing)元素次序 386
9.8 变序性算法(Mutating Algorithms) 386
9.8.2 旋转(Rotating)元素次序 388
9.8.3 排列(Permuting)元素 391
9.8.4 重排元素(Shuffling,搅乱次序) 393
9.8.5 将元素向前搬移 395
9.9 排序算法(Sorting Algorithms) 397
9.9.1 对所有元素排序 397
9.9.2 局部排序(Partial Sorting) 400
9.9.3 根据第n个元素排序 404
9.9.4 Heap算法 406
9.10 已序区间算法(Sorted Range Algorithms) 409
9.10.1 搜寻元素(Searching) 410
9.10.2 合并元素(Merging) 416
9.11 数值算法(Numeric Algorithms) 425
9.11.1 加工运算后产生结果 425
9.11.2 相对值和绝对值之间的转换 429
10.特殊容器(Special Containers) 435
10.1 Stacks(堆栈) 435
10.1.1 核心接口 436
10.1.2 Stacks运用实例 437
10.1.3 Class stack〈〉细部讨论 438
10.1.4 一个使用者自定义的Stack Class 441
10.2 Queues(队列) 444
10.2.1 核心接口 445
10.2 2 Queues运用实例 446
10.2.3 Class queue〈〉细部讨论 447
10.2.4 一个使用者自定义的Queue Class 450
10.3 Priority Queues(优先队列) 453
10.3.1 核心接口 455
10.3.2 Priority Queues运用实例 455
103.3 Classpriority_queue〈〉细部讨论 456
10.4 Bitsets 460
10.4.1 Bitsets运用实例 460
10.4.2 Class bitset细部讨论 463
11.Strings(字符串) 471
11.1 动机 471
11.1.1 例一:引出一个临时文件名 472
11.1.2 例二:引出一段文字并逆向打印 476
11.2 String Classes细部描述 479
11.2.1 String的各种相关型别 479
11.2.2 操作函数(Operations)综览 481
11.2.3 构造函数和析构函数(Constructors and Destructors) 483
11.2.4 Strings和C-Strings 484
11.2.5 大小(Size)和容量(Capacity) 485
11.2.6 元素存取(Element Access) 487
11.2.7 比较(Comparisons) 488
11.2.8 更改内容(Modifiers) 489
11.2.9 子串和字符串接合(concatenation) 492
11.2.10 I/O操作符 492
11.2.11 搜索和查找(Searching and Finding) 493
11.2.12 数值npos的意义 495
11.2.13 Strings对迭代器的支持 497
11.2.14 国际化(Internationalization) 503
11.2.15 效率(Performance) 506
11.2.16 Strings和Vectors 506
11.3.1 内部的型别定义和静态值 507
11.3 细说String Class 507
11.3.2 生成(Create)、拷贝(Copy)、销毁(Destroy) 508
11.3.3 大小(Size)和容量(Capacity) 510
11.3.4 比较(Comparisons) 511
11.3.5 字符存取(Character Access) 512
11.3.6 产生C-String和字符数组(Character Arrays) 513
11.3.7 更改内容 514
11.3.8 搜寻(Searching and Finding) 520
11.3.9 子字符串及字符串接合(String Concatenation) 524
11.3.10 I/O函数 524
11.3.11 产生迭代器 525
11.3.12 对配置器(allocator)的支持 526
12.数值(Numerics) 529
12.1 复数(Complex Numbers) 529
12.1.1 Class Complex运用实例 530
12.1.2 复数的各种操作 533
12.1.3 Class complex〈〉细部讨论 541
12.2 Valarrays 547
12.2.1 认识Valarrays 547
12.2.2 Valarray 的子集(Subsets) 553
12.2.3 Class valarray细部讨论 569
12.2.4 Valarray 子集类别(Subset Classes)细部讨论 575
12.3 全局性的数值函数 581
13.以Stream Classes完成输入和输出 583
13.1 IOStreams基本概念 584
13.1.1 Stream对象 584
13.1.2 Stream类别 584
13.1.3 全局性的Stream对象 585
13.1.4 Stream操作符 586
13.1.5 操控器(Manipulators) 586
13.1.6 一个简单的例子 587
13.2 基本的Stream类别和Stream对象 588
13.2.1 相关类别及其阶层体系 588
13.2.2 全局性的Stream对象 591
13.2.3 头文件(Headers) 592
13.3 标准的Stream操作符〈〈和〉〉 593
13.3.1 output操作符〈〈 593
13.3.2 input操作符〉〉 594
13.3.3 特殊型别的I/O 595
13.4 Streams的状态(state) 597
13.4.1 用来表示Streams状态的一些常数 597
13.4.2 用来处理Streams状态的一些成员函数 598
13.4.3 Stream状态与布尔条件测试 600
13.4.4 Stream的状态和异常 602
13.5.1 输入用的成员函数 607
13.5 标准I/O函数 607
13.5.2 输出用的成员函数 610
13.5.3 运用实例 611
13.6 操控器(Manipulators) 612
13.6.1 操控器如何运作 612
13.6.2 使用者自定义操控器 614
13.7 格式化(Formatting) 615
13.7.1 格式标志(Format Flags) 615
13.7.2 布尔值(Boolean Values)的I/O格式 617
13.7.3 字段宽度、充填字符、位置调整 618
13.7.4 正记号与大写字符 620
13.7.5 数值进制(Numberic Base) 621
13.7.6 浮点数(Floating-Point)表示法 623
13.7.7 一般性的格式定义 625
13.8 国际化(Internationalization) 625
13.9 文件存取(File Access) 627
13.9.1 文件标志(File Flags) 631
13.9.2 随机存取 634
13.9.3 使用文件描述符(File Descriptors) 637
13.10 连接Input Streams和Output Streams 637
13.10.1 以tie()完成“松耦合”(Loose Coupling) 637
13.10.2 以stream缓冲区完成“紧耦合”(Tight Coupling) 638
13.10.3 将标准Streams重新定向(Redirecting) 641
13.10.4 用于读写的Streams 643
13.11 String Stream Classes 645
13.11.1 String Stream Classes 645
13.11.2 char Stream Classes 649
13.12 “使用者自定义型别”之I/O操作符 652
13.12.1 实作一个output操作符 652
13.12.2 实作一个input操作符 654
13.12.3 以辅助函数完成I/O 656
13.12.4 以非格式化函数完成使用者自定义的操作符 658
13.12.5 使用者自定义的格式标志(Format Flags) 659
13.12.6 使用者自定义之I/O操作符的数个依循惯例 662
13.13 Stream Buffer Classes 663
13.13.1 从使用者的角度看Stream缓冲区 663
13.13.2 Stream缓冲区迭代器(Buffer Iterators) 665
13.13.3 使用者自定义的Stream缓冲区 668
13.14 关于性能(Performance) 681
13.14.1 与C标准串流(Standard Streams)同步 682
13.14.2 Stream缓冲区内的缓冲机制 682
13.14.3 直接使用Stream缓冲区 683
14.国际化(Internationalization,i18n) 685
14.1.1 宽字符(Wide-Characer)和多字节(Multibyte)文本 686
14.1 不同的字符编码(Character Encodings) 686
14.1.2 字符特性(Character Traits) 687
14.1.3 特殊字符国际化 691
14.2 Locales的概念 692
14.2.1 运用Locales 693
14.2.2 Locale Facets 698
14.3 Locales细部讨论 700
14.4 Facets细部讨论 704
14.4.1 数值格式化 705
14.4.2 时间和日期的格式化 708
14.4.3 货币符号格式化 711
14.4.4 字符的分类和转换 715
14.4.5 字符串校勘(String Collation) 724
14.4.6 信息国际化 725
15.空间配置器(Allocator) 727
15.1 应用程序开发者如何使用配置器 727
15.2 程序库开发者如何使用配置器 728
15.3 C++标准程序库的缺省配置器 732
15.4 使用者自行定义的配置器 735
15.5 配置器细部讨论 737
15.5.1 型别定义 737
15.5.2 各项操作 739
15.6 “未初始化内存”之处理工具细部讨论 740