图书介绍
标准模板库自修教程与参考手册 STL进行C++编程 第2版pdf电子书版本下载
- (美)David.R.Musser等编著;贺民,王朝阳译 著
- 出版社: 北京:科学出版社
- ISBN:7030110080
- 出版时间:2003
- 标注页数:377页
- 文件大小:14MB
- 文件页数:399页
- 主题词:C++
PDF下载
下载说明
标准模板库自修教程与参考手册 STL进行C++编程 第2版PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1部分 STL基础入门 1
第1章 概述 1
1.1 本书读者 2
1.2 类属编程的概念及重要性 2
1.3 C++模板与类属编程 4
1.3.2 函数模板 6
1.3.3 成员函数模板 8
1.3.4 模板参数的明确说明 8
1.3.5 默认模板参数 9
1.3.6 部分说明 10
1.4 模板的代码膨胀问题 10
1.5 理解STL性能保证 10
1.5.1 大O表示法与相关定义 10
1.5.2 分摊的时间复杂度 11
1.5.3 大O表示法的局限性 12
第2章 STL组件概述 13
2.1 容器 13
2.1.1 序列容器 13
2.1.2 有序关联容器 17
2.2 类属算法 18
2.2.1 类属查找算法 18
2.2.2 类属合并算法 21
2.3 迭代器 23
2.4 函数对象 26
2.5 适配器 30
2.6 分配器 32
第3章 STL与其他软件库的区别 33
3.1 可扩展性 33
3.2 组件的互换性 34
3.3 算法/容器兼容性 35
第4章 迭代器 36
4.1 输入迭代器 36
4.2 输出迭代器 38
4.3 前向迭代器 39
4.4 双向迭代器 40
4.5 随机访问迭代器 41
4.6 STL迭代器层次结构:算法与容器之间的高效结合 42
4.7 插入迭代器 44
4.8 再论输入与输出:流迭代器 46
4.9 STL算法对迭代器类型要求的定义 47
4.10 类属算法设计 48
4.11 算法对迭代器的更高要求 49
4.12 正确选择算法 50
4.13 常量迭代器和可变迭代器 51
4.14 STL容器的迭代器分类 52
5.1 STL基本算法组织 55
5.1.1 原地形式和复制形式 55
第5章 类属算法 55
5.1.2 具有函数参数的算法 57
5.2 非可变序列算法 58
5.2.1 find 58
5.2.2 adjacent_find 59
5.2.3 count 60
5.2.4 for_each 61
5.2.5 mismatch和equal 62
5.2.6 search 65
5.3.1 copy和copy_backward 67
5.3 可变序列算法 67
5.3.2 fill 68
5.3.3 generate 69
5.3.4 partition 70
5.3.5 random_shuffle 72
5.3.6 remove 73
5.3.7 replace 74
5.3.8 reverse 74
5.3.10 swap 75
5.3.9 rotate 75
5.3.11 swap_ranges 76
5.3.12 transform 77
5.3.13 unique 78
5.4 排序相关的算法 79
5.4.1 比较关系 79
5.4.2 非降序(升序)与非升序(降序) 82
5.4.3 sort,stable_sort和partial_sort 83
5.4.4 nth_element 86
5.4.5 binary_search, lower_bound, upper_bound和equal_range 87
5.4.6 merge 89
5.4.7 集合操作和有序结构 90
5.4.8 堆操作 92
5.4.9 最小值和最大值 93
5.4.10 词典序比较 94
5.4.11 排列生成器 95
5.5 通用数值算法 96
5.5.1 accumulate 96
5.5.2 partial_sum 97
5.5.3 adjacent_difference 98
5.5.4 inner_product 98
第6章 序列容器 101
6.1 向量 102
6.1.1 类型 102
6.1.2 构造序列 103
6.1.3 插入 107
6.1.4 删除 112
6.1.5 访问器 114
6.1.6 相等和小于关系 115
6.1.7 赋值 116
6.2 双端队列 117
6.2.2 构造函数 119
6.2.1 类型 119
6.2.4 删除 120
6.2.5 访问器 120
6.2.6 相等和小于关系 120
6.2.7 赋值 120
6.3 链表 120
6.2.3 插入 120
6.3.2 构造函数 122
6.3.3 插入 122
6.3.1 类型 122
6.3.4 删除 123
6.3.5 拼接 124
6.3.6 排序相关的成员函数 126
6.3.7 清除 127
6.3.8 访问器 127
6.3.9 相等和小于关系 127
6.3.10 赋值 127
第7章 有序关联容器 128
7.1.1 类型 129
7.1 集合和多集 129
7.1.2 构造函数 130
7.1.3 插入 130
7.1.4 删除 133
7.1.5 访问器 135
7.1.6 相等和小于关系 138
7.1.7 赋值 138
7.2 映射和多映射 138
7.2.1 类型 139
7.2.3 插入 140
7.2.2 构造函数 140
7.2.4 删除 144
7.2.5 访问器 144
7.2.6 相等和小于关系 145
7.2.7 赋值 145
第8章 函数对象 146
8.1 通过函数指针传递函数参数 146
8.2 通过模板参数定义函数对象的优越性 148
8.3 STL所提供的函数对象 152
9.1 栈容器适配器 153
第9章 容器适配器 153
9.2 队列容器适配器 155
9.3 优先级队列容器适配器 157
第10章 迭代器适配器 160
第11章 函数适配器 163
11.1 绑定器 163
11.2 取反器 164
11.3 函数指针适配器 166
12.1 查找给定单词的变位词 169
第12章 为字典检索编程 169
第2部分 综合运用:示例程序 169
12.2 使用标准流和I/O流类交互 171
12.3 产生全排列并检索词典 173
12.4 完整程序 174
12.5 程序运行速度 175
第13章 编程查找所有变位词组 177
13.1 查找变位词组 177
13.2 定义STL使用的数据结构 178
13.3 创建用于比较的函数对象 179
13.5 将字典读入PS对象的向量 180
13.4 完成变位词组检索程序 180
13.6 使用比较对象排序单词对 181
13.7 使用等同判定对象搜索临近的相同元素 181
13.8 使用函数适配器包含判定对象 182
13.9 将变位词组对复制到输出流 182
13.10 变位词程序的输出 183
第14章 更好的变位词程序:使用表和映射容器 184
14.1 包含迭代器对的数据结构 184
14.2 在表映射中存储信息 184
14.3 按大小顺序输出变位词组 185
14.4 更好的变位词程序 186
14.5 程序的输出 187
14.6 使用映射容器的原因 188
第15章 更快的变位词程序:使用多映射 190
15.1 搜索变位词组,版本3 190
15.2 多映射的声明 192
15.3 将词典读入多映射 193
15.4 在多映射中查找变位词组 193
15.7 程序的速度 195
15.5 按照个数多少输出变位词组 195
15.6 程序的输出 195
第16章 定义迭代器类 196
16.1 迭代器新类型:计数迭代器 196
16.2 计数迭代器类 197
第17章 组合STL和面向对象编程 202
17.1 使用继承和虚函数 202
17.2 避免容器实例的“代码膨胀” 207
18.1 按日期对学生排序 209
第18章 显示理论计算机科学族谱的程序 209
18.2 关联学生和导师 210
18.3 查找树根 211
18.4 读取文件 214
18.5 打印结果 216
18.6 完整的“族谱”程序 217
第19章 用于记时的类属算法的类 218
19.1 精确测定算法时间的障碍 218
19.2 排除障碍 219
19.3 进一步优化 221
19.4 使用Timer类自动分析 222
19.4.1 报告最后结果 225
19.5 STL Sort算法计时 227
第3部分 STL参考指南 231
第20章 迭代器参考指南 231
20.1 输入迭代器的要求 232
20.2 输出迭代器的要求 233
20.3 前向迭代器的要求 234
20.4 双向迭代器的要求 234
20.6 迭代器特性 235
20.5 随机访问迭代器的要求 235
20.6.1 迭代器基类 236
20.6.2 标准迭代器标记 237
20.7 迭代器运算 238
20.8 流迭代器 238
20.8.1 文件 238
20.8.2 类声明 238
20.8.5 类型定义 239
20.8.6 构造函数 239
20.8.3 示例 239
20.8.4 描述 239
20.8.7 公共成员函数 240
20.8.8 比较运算 240
20.9 输出流迭代器 240
20.9.1 文件 240
20.9.4 描述 241
20.9.5 类型定义 241
20.9.6 构造函数 241
20.9.3 示例 241
20.9.2 类声明 241
20.9.7 公共成员函数 242
20.10 反向迭代器 242
20.10.1 文件 242
20.10.2 类声明 242
20.10.3 示例 242
20.10.4 描述 243
20.10.5 构造函数 243
20.10.6 公共成员函数 243
20.10.7 全局算法 244
20.11.3 示例 245
20.11.2 类声明 245
20.11.4 描述 245
20.11 后向插入迭代器 245
20.10.8 相等性和顺序判定 245
20.11.1 文件 245
20.11.5 构造函数 246
20.11.6 公共成员函数 246
20.11.7 相应的模板函数 246
20.12 前向插入迭代器 246
20.12.1 文件 246
20.12.2 类声明 246
20.12.3 构造函数 246
20.12.4 公共成员函数 247
20.12.5 相应的模板函数 247
20.13 插入迭代器 247
20.13.1 文件 247
20.13.2 类声明 247
20.13.3 示例 247
20.13.6 相应的模板函数 248
20.13.4 构造函数 248
20.13.5 公共成员函数 248
第12章 容器参考指南 249
21.1 预备知识 249
21.1.1 STL容器的基本设计和组织 249
21.1.2 容器的公共成员 250
21.1.3 可逆容器的要求 252
21.1.4 序列容器的要求 253
21.1.5 关联容器的要求 254
21.2 容器类描述的组织 257
21.2.1 头文件 257
21.2.2 类的声明 257
21.2.3 示例 257
21.2.4 描述 257
21.2.11 附注部分 258
21.3 向量 258
21.2.10 删除数据的成员函数 258
21.3.2 类的声明 258
21.3.1 头文件 258
21.2.9 插入数据的成员函数 258
21.2.8 访问数据的成员函数 258
21.2.7 比较操作 258
21.2.6 构造函数、析构函数及相关函数 258
21.2.5 类型定义 258
21.3.3 示例 259
21.3.4 描述 259
21.3.5 类型定义 259
21.3.6 构造函数、析构函数及相关函数 260
21.3.7 比较操作 261
21.3.8 向量元素访问成员函数 262
21.3.9 向量插入成员函数 263
21.3.10 向量删除成员函数 263
21.3.11 关于向量插入成员函数和删除成员函数的附注 264
21.4 双端队列 264
21.4.1 头文件 264
21.4.2 类的声明 264
21.4.5 类型定义 265
21.4.6 双端队列构造函数、析构函数及相关函数 265
21.4.3 示例 265
21.4.4 描述 265
21.4.7 比较操作 266
21.4.8 双端队列元素访问成员函数 266
21.4.9 双端队列插入成员函数 268
21.4.10 双端队列删除成员函数 268
21.5.1 头文件 269
21.5.4 描述 269
21.5.2 类的声明 269
21.5.3 示例 269
21.5 表 269
21.4.12 关于双端队列删除成员函数的附注 269
21.4.11 双端队列插入操作的复杂度 269
21.5.5 类型定义 270
21.5.6 表的构造函数、析构函数及相关函数 270
21.5.7 比较操作 271
21.5.8 表元素访问成员函数 272
21.5.9 list类插入数据的成员函数 273
21.5.10 表的删除成员函数 273
21.5.11 特殊表操作:Splice, Remove, Remove If, Unique, Merge, Reverse和Sort 274
21.6.5 类型定义 276
21.6.4 描述 276
21.6.2 类的声明 276
21.6.3 示例 276
21.6.1 头文件 276
21.6 集合 276
21.5.13 关于表删除成员函数的附注 276
21.5.12 关于表插入成员函数的附注 276
21.6.6 集合构造函数、析构函数及相关函数 278
21.6.7 比较操作 278
21.6.8 集合元素访问成员函数 278
21.6.9 set类的插入数据的成员函数 279
21.6.11 特殊集合操作 280
21.6.10 集合删除成员函数 280
21.7 多集 281
21.7.1 头文件 281
21.7.2 类的声明 281
21.7.3 示例 281
21.7.4 描述 281
21.7.5 类型定义 282
21.7.6 多集的构造函数、析构函数及相关函数 282
21.7.7 比较操作 282
21.7.9 多集插入数据成员函数 283
21.7.8 多集访问数据成员函数 283
21.7.11 特殊多集操作 284
21.7.10 多集的删除数据成员函数 284
21.8 映射 285
21.8.1 头文件 285
21.8.2 类的声明 285
21.8.3 示例 285
21.8.4 描述 285
21.8.5 类型定义 286
21.8.7 map类的比较操作 287
21.8.6 映射的构造函数、析构函数及相关函数 287
21.8.8 map类访问数据的成员函数 288
21.8.9 映射插入成员函数 289
21.8.10 映射删除成员函数 290
21.8.11 特殊映射操作 290
21.9.6 多映射的构造函数、析构函数及相关函数 291
21.9.5 类型定义 291
21.9.3 示例 291
21.9.4 描述 291
21.9.1 头文件 291
21.9 多映射 291
21.9.2 类的声明 291
21.9.7 multimap类的比较操作 292
21.9.8 多映射元素访问成员函数 292
21.9.9 多映射插入成员函数 293
21.9.10 多映射删除成员函数 294
21.9.11 特殊多映射操作 294
21.10.3 示例 295
21.10.4 描述 295
21.10 栈容器适配器 295
21.10.2 类的声明 295
21.10.1 头文件 295
21.10.5 类型定义 296
21.10.6 栈的构造函数 296
21.10.7 栈的公共成员函数 296
21.11.4 描述 297
21.11.3 示例 297
21.11.2 类的声明 297
21.11.1 头文件 297
21.11 队列容器适配器 297
21.10.8 比较操作 297
21.11.5 类型定义 298
21.11.6 队列的构造函数 298
21.11.7 公共成员函数 298
21.12.4 描述 299
21.12.3 示例 299
21.12.2 类的声明 299
21.12.1 头文件 299
21.12 优先级队列容器适配器 299
21.11.8 比较函数 299
21.12.5 类型定义 300
21.12.6 优先级队列的构造函数 300
21.12.7 公共成员函数 300
21.12.8 优先级队列的比较函数 301
第22章 类属算法参考指南 302
22.1 算法描述的组织 302
22.1.1 原型 302
22.2 非可变序列算法概述 303
22.1.4 时间复杂度 303
22.1.2 示例 303
22.1.3 详细描述 303
22.3 for_each 304
22.3.1 原型 304
22.3.2 示例 304
22.3.3 详细描述 304
22.3.4 时间复杂度 304
22.4 find 304
22.4.1 原型 304
22.4.2 示例 305
22.4.3 详细描述 305
22.4.4 时间复杂度 305
22.5 find_first_of 305
22.5.1 原型 305
22.5.2 详细描述 305
22.5.3 时间复杂度 305
22.7.1 原型 306
22.7.2 示例 306
22.7 count 306
22.7.3 详细描述 306
22.6 adjacent_find 306
22.6.4 时间复杂度 306
22.6.3 详细描述 306
22.6.2 示例 306
22.6.1 原型 306
22.7.4 时间复杂度 307
22.8 mismatch 307
22.8.1 原型 307
22.8.2 示例 307
22.8.3 详细描述 307
22.8.4 时间复杂度 307
22.9.4 时间复杂度 308
22.9.3 详细描述 308
22.10 search 308
22.10.1 原型 308
22.9.1 原型 308
22.9 equal 308
22.9.2 示例 308
22.10.2 示例 309
22.10.3 详细描述 309
22.10.4 时间复杂度 309
22.11 search_n 309
22.11.1 原型 309
22.11.2 详细描述 309
22.12.2 详细描述 310
22.13 可变序列算法概述 310
22.12.3 时间复杂度 310
22.11.3 时间复杂度 310
22.12.1 原型 310
22.12 find_end 310
22.14 copy 311
22.14.1 原型 311
22.14.2 示例 311
22.14.3 详细描述 311
22.15.4 时间复杂度 312
22.16 transform 312
22.15.3 详细描述 312
22.16.1 原型 312
22.14.4 时间复杂度 312
22.15.2 示例 312
22.15.1 原型 312
22.15 swap 312
22.16.2 示例 313
22.16.3 详细描述 313
22.16.4 时间复杂度 313
22.17 replace 313
22.17.1 原型 313
22.17.2 示例 314
22.17.3 详细描述 314
22.17.4 时间复杂度 314
22.18 fill 314
22.18.1 原型 314
22.18.2 示例 314
22.18.3 详细描述 314
22.19.4 时间复杂度 315
22.19.3 详细描述 315
22.20 remove 315
22.20.1 原型 315
22.19.1 原型 315
22.19 generate 315
22.18.4 时间复杂度 315
22.19.2 示例 315
22.20.4 时间复杂度 316
22.21 unique 316
22.21.1 原型 316
22.20.3 详细描述 316
22.20.2 示例 316
22.21.2 示例 317
22.21.3 详细描述 317
22.21.4 时间复杂度 317
22.22 reverse 317
22.22.1 原型 317
22.22.2 示例 317
22.22.3 详细描述 317
22.24 random_shuffle 318
22.23.4 时间复杂度 318
22.24.1 原型 318
22.24.2 示例 318
22.23.1 原型 318
22.23.3 详细描述 318
22.23.2 示例 318
22.23 rotate 318
22.22.4 时间复杂度 318
22.24.3 详细描述 319
22.24.4 时间复杂度 319
22.25 partition 319
22.25.1 原型 319
22.25.2 示例 319
22.25.3 详细描述 319
22.25.4 时间复杂度 319
22.26 有序队列算法概述 320
22.27 sort 321
22.27.1 原型 321
22.27.2 示例 321
22.28 nth_element 322
22.28.1 原型 322
22.27.3 详细描述 322
22.27.4 时间复杂度 322
22.28.2 示例 323
22.28.3 详细描述 323
22.28.4 时间复杂度 323
22.29 binary_search 323
22.29.1 原型 323
22.29.4 时间复杂度 324
22.30.1 原型 324
22.30 merge 324
22.29.3 详细描述 324
22.29.2 示例 324
22.30.2 示例 325
22.30.3 详细描述 325
22.30.4 时间复杂度 325
22.31 有序结构的集合运算 325
22.31.1 原型 326
22.31.2 示例 327
22.31.3 详细描述 327
22.31.4 时间复杂度 327
22.32.1 原型 328
22.32 堆操作 328
22.32.3 详细描述 329
22.32.4 时间复杂度 329
22.33 min和max 329
22.33.1 原型 329
22.32.2 示例 329
22.34 lexicographical_compare 330
22.34.3 详细描述 330
22.34.2 示例 330
22.34.1 原型 330
22.33.4 时间复杂度 330
22.33.3 详细描述 330
22.33.2 示例 330
22.34.4 时间复杂度 331
22.35 排列生成器 331
22.35.1 原型 331
22.35.2 示例 331
22.35.3 详细描述 331
22.37.3 详细描述 332
22.37.1 原型 332
22.37.2 示例 332
22.36 通用数字算法概述 332
22.35.4 时间复杂度 332
22.37 accumulate 332
22.37.4 时间复杂度 333
22.38 inner_product 333
22.38.1 原型 333
22.38.2 示例 333
22.38.3 详细描述 333
22.38.4 时间复杂度 333
22.39.4 时间复杂度 334
22.40.1 原型 334
22.40 adjacent_difference 334
22.39.1 原型 334
22.39.3 详细描述 334
22.39.2 示例 334
22.39 partial_sum 334
22.40.2 示例 335
22.40.3 详细描述 335
22.40.4 时间复杂度 335
23.1.2 函数适配器 336
23.1.1 函数对象 336
23.1 要求 336
第23章 函数对象和函数适配器参考指南 336
23.2 基类 337
23.3 算术运算 337
23.4 比较运算 338
23.5 逻辑运算 338
23.6 否定适配器 339
23.7 绑定适配器 339
23.8 函数指针适配器 340
23.9 成员函数指针适配器 340
24.1.1 将分配器传递给STL容器 343
24.2 分配器要求 343
第24章 分配器参考指南 343
24.1 概述 343
24.3 默认分配器 346
24.3.1 文件 346
24.3.2 类的声明 346
24.3.3 详细描述 346
24.3.4 类型定义 346
24.3.5 构造函数、析构函数和相关函数 346
24.3.6 其他成员函数 347
24.3.8 关于void的附注 348
24.4 定制分配器 348
24.3.7 比较运算 348
第25章 实用程序参考指南 354
25.1 概述 354
25.2 比较函数 354
25.3 pair 354
25.3.1 文件 354
25.3.5 类型定义 355
25.3.7 构造函数 355
25.3.6 成员变量 355
25.3.2 类声明 355
25.3.4 描述 355
25.3.3 例子 355
25.3.8 比较函数 356
附录A STL头文件 357
B.1.2 类声明 358
B.1.1 文件 358
B.1.3 描述 358
附录B 字符串参考指南 358
B.1 字符串类 358
B.1.4 类型定义 359
B.1.5 构造函数、析构函数及相关函数 360
B.1.6 比较操作 362
B.1.7 元素访问成员函数 363
B.1.8 插入成员函数 365
B.1.9 删除成员函数 365
B.2.1 文件 366
B.2.3 类型定义 366
B.2.2 描述 366
B.2 字符特性 366
B.1.10 附注 366
B.2.4 字符处理函数 367
附录C 示例程序使用的STL包含文件 369
C.1 示例17.1中使用的文件 369
附录D STL资源 374
D.1 STL的SGI参考实现的Internet地址 374
D.2 本书示例源代码的万维网地址 374
D.3 STL兼容的编译程序 374
D.4 其他相关的STL和C++文档 375
D.5 类属编程和STL讨论列表 375
参考文献 376