图书介绍

标准模板库自修教程与参考手册 STL进行C++编程 第2版pdf电子书版本下载

标准模板库自修教程与参考手册 STL进行C++编程  第2版
  • (美)David.R.Musser等编著;贺民,王朝阳译 著
  • 出版社: 北京:科学出版社
  • ISBN:7030110080
  • 出版时间:2003
  • 标注页数:377页
  • 文件大小:14MB
  • 文件页数:399页
  • 主题词:C++

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
下载压缩包 [复制下载地址] 温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页

下载说明

标准模板库自修教程与参考手册 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

精品推荐