人民邮电出版社有限公司店铺主页二维码
人民邮电出版社有限公司 微信认证
人民邮电出版社微店,为您提供最全面,最专业的一站式购书服务
微信扫描二维码,访问我们的微信店铺
你可以使用微信联系我们,随时随地的购物、客服咨询、查询订单和物流...

C++程序设计语言 第4版 上下册 C++编程入门*编程 程序设计基础教程 c语言入门

187.40
运费: ¥ 0.00-20.00
C++程序设计语言 第4版 上下册 C++编程入门*编程 程序设计基础教程 c语言入门 商品图0
C++程序设计语言 第4版 上下册 C++编程入门*编程 程序设计基础教程 c语言入门 商品图1
C++程序设计语言 第4版 上下册 C++编程入门*编程 程序设计基础教程 c语言入门 商品图2
C++程序设计语言 第4版 上下册 C++编程入门*编程 程序设计基础教程 c语言入门 商品图3
C++程序设计语言 第4版 上下册 C++编程入门*编程 程序设计基础教程 c语言入门 商品图4
C++程序设计语言 第4版 上下册 C++编程入门*编程 程序设计基础教程 c语言入门 商品缩略图0 C++程序设计语言 第4版 上下册 C++编程入门*编程 程序设计基础教程 c语言入门 商品缩略图1 C++程序设计语言 第4版 上下册 C++编程入门*编程 程序设计基础教程 c语言入门 商品缩略图2 C++程序设计语言 第4版 上下册 C++编程入门*编程 程序设计基础教程 c语言入门 商品缩略图3 C++程序设计语言 第4版 上下册 C++编程入门*编程 程序设计基础教程 c语言入门 商品缩略图4

商品详情

书名:C++程序设计语言:第4版:上、下册
定价:249.8
ISBN:9787115666147
作者:[丹]比亚内·斯特劳斯特鲁普(Bjarne Stroustrup)
版次:第1版
出版时间:2026-01

内容提要:
C++是一种通用程序设计语言。本书*介绍C++11标准,涵盖了C++的发展历程、设计理念、学习方法及新特性等内容。第1篇(第1~5章)包括C++的背景知识、C++语言及其标准库的简要介绍;第2篇(第6~15章)介绍C++的内置类型、基本特性及如何用它们构造程序;第3篇(第16~29章)介绍C++的抽象机制及如何用这些机制编写面向对象程序和泛型程序;第4篇(第30~44章)概述标准库并讨论一些兼容性问题。本书从基本原理、规范等方面充分讲解C++的语言特性和标准库组件,并给出丰富的例子,为专业程序员提供*的C++知识体系。 本书可作为高等院校编程语言和C++相关课程的教材,也适合C++程序设计人员阅读。



作者简介:
比亚内?斯特劳斯特鲁普(Bjarne Stroustrup),C++ 语言的设计者和*初实现者,《C++ 程序设计语言》及《C++ 程序设计原理与实践》等多部图书作者。曾任职于贝尔实验室、美国电话电报公司 (AT&T) 研究实验室、得克萨斯农工大学及摩根士丹利纽约总部,于 2022 年退休。 Stroustrup 曾荣获多项荣誉,包括 2018 年美国国家工程院查尔斯?斯塔克?德雷珀奖,以表彰他 “对 C++ 语言的构思与开发”。此外,Stroustrup 还是美国国家工程院院士、AT&T 会士、AT&T 贝尔实验室会士、电气电子工程师学会 (IEEE) 会士以及美国计算机协会 (ACM) 会士,并于 2013 年入选《电子设计》杂志的工程名人堂。 Stroustrup 的研究领域包括分布式系统、仿真、设计、编程技术、软件开发工具和编程语言等,同时积极参与 C++ 的 ANSI/ISO 标准化工作。 Stroustrup 拥有丹麦奥胡斯大学的硕士学位,以及英国剑桥大学的计算机科学博士学位。

目录:
上册

第 1篇 引言

第 1章 致读者  2
 1.1 本书结构  2
  1.1.1 导言  2
  1.1.2 基本特性  3
  1.1.3 抽象机制  3
  1.1.4 标准库  4
  1.1.5 示例和参考文献  4
 1.2 C++的设计  5
  1.2.1 编程风格  6
  1.2.2 类型检查  8
  1.2.3 C语言兼容性  9
  1.2.4 语言、库和系统  9
 1.3 学习C++  10
  1.3.1 用C++编程  11
  1.3.2 对C++程序员的建议  12
  1.3.3 对C程序员的建议  12
  1.3.4 对Java程序员的建议  13
 1.4 C++的发展历程  14
  1.4.1 大事年表  14
  1.4.2 早期的C++  15
  1.4.3 1998标准  16
  1.4.4 2011标准  17
  1.4.5 C++的用途  19
 1.5 建议  20
 1.6 参考资料  21

第 2章 C++之旅:基础知识  24
 2.1 导言  24
 2.2 基础知识  24
  2.2.1 Hello, World!  25
  2.2.2 类型、变量和算术运算  26
  2.2.3 常量  28
  2.2.4 测试和循环  28
  2.2.5 指针、数组和循环  29
 2.3 用户自定义类型  31
  2.3.1 结构体  31
  2.3.2 类  32
  2.3.3 枚举  33
 2.4 模块化  34
  2.4.1 单独编译  35
  2.4.2 命名空间  36
  2.4.3 错误处理  37
 2.5 后记  39
 2.6 建议  39

第3章 C++之旅:抽象机制  40
 3.1 导言  40
 3.2 类  40
  3.2.1 具体类型  41
  3.2.2 抽象类型  44
  3.2.3 虚函数  46
  3.2.4 类层次结构  46
 3.3 复制和移动  50
  3.3.1 复制容器  50
  3.3.2 移动容器  51
  3.3.3 资源管理  53
  3.3.4 禁用操作  53
 3.4 模板  54
  3.4.1 参数化类型  54
  3.4.2 函数模板  55
  3.4.3 函数对象  56
  3.4.4 可变参数模板  58
  3.4.5 别名  58
 3.5 建议  59

第4章 C++之旅:容器和算法  60
 4.1 库  60
  4.1.1 标准库概述  60
  4.1.2 标准库头文件和命名空间  61
 4.2 字符串  62
 4.3 I/O流  63
  4.3.1 输出  63
  4.3.2 输入  64
  4.3.3 用户自定义类型I/O  65
 4.4 容器  66
  4.4.1 vector  66
  4.4.2 list  68
  4.4.3 map  69
  4.4.4 unordered_map  70
  4.4.5 容器概述  70
 4.5 算法  71
  4.5.1 使用迭代器  72
  4.5.2 迭代器类型  73
  4.5.3 流迭代器  74
  4.5.4 谓词  75
  4.5.5 算法概述  76
  4.5.6 容器算法  76
 4.6 建议  77

第5章 C++之旅:并发与实用工具  78
 5.1 导言  78
 5.2 资源管理  78
  5.2.1 unique_ptr和shared_ptr  79
 5.3 并发处理  80
  5.3.1 任务和线程  80
  5.3.2 传递参数  81
  5.3.3 返回结果  82
  5.3.4 共享数据  82
  5.3.5 任务间通信  84
 5.4 小型实用组件  86
  5.4.1 时间处理  87
  5.4.2 类型函数  87
  5.4.3 对组和元组  89
 5.5 正则表达式  90
 5.6 数值计算  90
  5.6.1 数学函数和算法  90
  5.6.2 复数  91
  5.6.3 随机数  91
  5.6.4 向量运算  92
  5.6.5 数值限制  93
 5.7 建议  93

第 2篇 基本特征

第6章 类型和声明  96
 6.1 ISO C++标准  96
  6.1.1 实现  97
  6.1.2 基本源代码字符集  97
 6.2 类型  97
  6.2.1 基本类型  98
  6.2.2 布尔类型  98
  6.2.3 字符类型  99
  6.2.4 整数类型  102
  6.2.5 浮点类型  104
  6.2.6 前缀和后缀  104
  6.2.7 void  105
  6.2.8 大小  105
  6.2.9 对齐  107
 6.3 声明  107
  6.3.1 声明的结构  109
  6.3.2 声明多个名称  110
  6.3.3 名称  110
  6.3.4 作用域  111
  6.3.5 初始化  113
  6.3.6 类型推断:auto和decltype()  116
 6.4 对象与值  118
  6.4.1 左值与右值  118
  6.4.2 对象的生命周期  118
 6.5 类型别名  119
 6.6 建议  120

第7章 指针、数组与引用  121
 7.1 导言  121
 7.2 指针  121
  7.2.1 void*  122
  7.2.2 nullptr  122
 7.3 数组  123
  7.3.1 数组初始化器  124
  7.3.2 字符串字面量  124
 7.4 指针与数组  127
  7.4.1 访问数组  127
  7.4.2 多维数组  129
  7.4.3 传递数组  130
 7.5 指针与const  131
 7.6 指针与所有权  133
 7.7 引用  133
  7.7.1 左值引用  134
  7.7.2 右值引用  137
  7.7.3 引用的引用  139
  7.7.4 指针与引用  139
 7.8 建议  141

第8章 结构体、联合体与枚举  142
 8.1 导言  142
 8.2 结构体  142
  8.2.1 struct的布局  143
  8.2.2 struct的名称  144
  8.2.3 结构体与类  145
  8.2.4 结构体与数组  146
  8.2.5 类型等价  148
  8.2.6 普通旧数据  149
  8.2.7 域  150
 8.3 联合体  151
  8.3.1 联合体与类  152
  8.3.2 匿名union  153
 8.4 枚举  155
  8.4.1 enum class  155
  8.4.2 普通enum  158
  8.4.3 未命名enum  159
 8.5 建议  159

第9章 语句  160
 9.1 导言  160
 9.2 语句概述  160
 9.3 声明作为语句  161
 9.4 选择语句  162
  9.4.1 if语句  162
  9.4.2 switch语句  163
  9.4.3 条件中的声明  165
 9.5 循环语句  166
  9.5.1 范围for语句  166
  9.5.2 for语句  167
  9.5.3 while语句  168
  9.5.4 do语句  168
  9.5.5 循环退出  168
 9.6 goto语句  169
 9.7 注释与缩进  169
 9.8 建议  171

第 10章 表达式  172
 10.1 导言  172
 10.2 桌面计算器示例  172
  10.2.1 语法分析器  172
  10.2.2 输入  176
  10.2.3 底层输入  179
  10.2.4 错误处理  179
  10.2.5 驱动程序  180
  10.2.6 头文件  180
  10.2.7 命令行参数  181
  10.2.8 编程风格  182
 10.3 运算符概述  182
  10.3.1 结果  185
  10.3.2 求值顺序  186
  10.3.3 运算符优先级  186
  10.3.4 临时对象  187
 10.4 常量表达式  188
  10.4.1 符号常量  189
  10.4.2 常量表达式中的const  189
  10.4.3 字面量类型  190
  10.4.4 引用参数  190
  10.4.5 地址常量表达式  191
 10.5 隐式类型转换  191
  10.5.1 提升  191
  10.5.2 类型转换  192
  10.5.3 常规算术类型转换  194
 10.6 建议  194

第 11章 选择操作  195
 11.1 其他运算符  195
  11.1.1 逻辑运算符  195
  11.1.2 位逻辑运算符  195
  11.1.3 条件表达式  196
  11.1.4 递增与递减  197
 11.2 自由存储区  198
  11.2.1 内存管理  199
  11.2.2 数组  201
  11.2.3 获取内存空间  202
  11.2.4 重载new  203
 11.3 列表  204
  11.3.1 实现模型  205
  11.3.2 限定列表  206
  11.3.3 未限定列表  206
 11.4 lambda表达式  208
  11.4.1 实现模型  208
  11.4.2 lambda的替代  209
  11.4.3 捕获  210
  11.4.4 调用与返回  212
  11.4.5 lambda的类型  213
 11.5 显式类型转换  213
  11.5.1 构造  214
  11.5.2 命名转换  216
  11.5.3 C风格转换  217
  11.5.4 函数风格转换  217
 11.6 建议  217

第 12章 函数  218
 12.1 函数声明  218
  12.1.1 为什么使用函数  218
  12.1.2 函数声明的组成  219
  12.1.3 函数定义  219
  12.1.4 返回值  220
  12.1.5 inline函数  222
  12.1.6 constexpr函数  222
  12.1.7 带有[[noreturn]]的函数  224
  12.1.8 局部变量  224
 12.2 参数传递  225
  12.2.1 引用参数  226
  12.2.2 数组参数  227
  12.2.3 列表参数  228
  12.2.4 未定数量的参数  230
  12.2.5 默认参数  232
 12.3 重载函数  233
  12.3.1 自动重载解析  234
  12.3.2 重载与返回类型  235
  12.3.3 重载与作用域  235
  12.3.4 多实参解析  236
  12.3.5 手动重载解析  236
 12.4 前置与后置条件  237
 12.5 函数指针  238
 12.6 宏  241
  12.6.1 条件编译  244
  12.6.2 预定义宏  244
  12.6.3 编译指令  245
 12.7 建议  245

第 13章 异常处理  246
 13.1 错误处理  246
  13.1.1 异常  246
  13.1.2 传统的错误处理  247
  13.1.3 应付过去  248
  13.1.4 异常的替代观点  249
  13.1.5 何时不能使用异常  249
  13.1.6 层次化错误处理  250
  13.1.7 异常与效率  251
 13.2 异常保证  252
 13.3 资源管理  253
  13.3.1 finally  256
 13.4 强制不变式  257
 13.5 抛出和捕获异常  260
  13.5.1 抛出异常  260
  13.5.2 捕获异常  263
  13.5.3 异常与线程  268
 13.6 vector的实现  268
  13.6.1 一个简单的vector  268
  13.6.2 显式表示内存  271
  13.6.3 赋值  273
  13.6.4 改变大小  275
 13.7 建议  277

第 14章 命名空间  278
 14.1 组合问题  278
 14.2 命名空间  279
  14.2.1 显式限定  280
  14.2.2 using声明  281
  14.2.3 using指令  282
  14.2.4 参数依赖查找  283
  14.2.5 命名空间是开放的  284
 14.3 模块化与接口  285
  14.3.1 命名空间作为模块  286
  14.3.2 实现  287
  14.3.3 接口和实现  289
 14.4 使用命名空间组合代码  290
  14.4.1 便利性与*性  290
  14.4.2 命名空间别名  291
  14.4.3 组合命名空间  291
  14.4.4 组合与选择  292
  14.4.5 命名空间与重载  293
  14.4.6 版本控制  295
  14.4.7 嵌套命名空间  297
  14.4.8 未命名命名空间  297
  14.4.9 C头文件  298
 14.5 建议  299

第 15章 源文件与程序  300
 15.1 单独编译  300
 15.2 链接  301
  15.2.1 文件局部名称  303
  15.2.2 头文件  303
  15.2.3 单一定义规则  304
  15.2.4 标准库头文件  306
  15.2.5 链接非C++代码  307
  15.2.6 链接与函数指针  308
 15.3 使用头文件  309
  15.3.1 单头文件组织  309
  15.3.2 多头文件组织  312
  15.3.3 包含保护  315
 15.4 程序  316
  15.4.1 非局部变量初始化  316
  15.4.2 初始化与并发  317
  15.4.3 程序终止  317
 15.5 建议  318

第3篇 抽象机制

第 16章 类  320
 16.1 导言  320
 16.2 类的基本概念  321
  16.2.1 成员函数  321
  16.2.2 默认复制  322
  16.2.3 访问控制  322
  16.2.4 类和结构体  323
  16.2.5 构造函数  324
  16.2.6 显式构造函数  326
  16.2.7 类内初始化器  328
  16.2.8 类内函数定义  328
  16.2.9 可变性  329
  16.2.10 自引用  331
  16.2.11 成员访问  333
  16.2.12 静态成员  334
  16.2.13 成员类型  335
 16.3 具体类  336
  16.3.1 成员函数  338
  16.3.2 辅助函数  340
  16.3.3 重载运算符  341
  16.3.4 具体类的意义  342
 16.4 建议  343

第 17章 构造、清理、复制和移动  344
 17.1 导言  344
 17.2 构造函数和析构函数  345
  17.2.1 构造函数和不变式  346
  17.2.2 析构函数和资源  347
  17.2.3 基类和成员析构函数  348
  17.2.4 调用构造函数和析构函数  348
  17.2.5 虚析构函数  349
 17.3 类对象初始化  350
  17.3.1 不使用构造函数进行初始化  350
  17.3.2 使用构造函数进行初始化  351
  17.3.3 默认构造函数  353
  17.3.4 初始化器列表构造函数  355
 17.4 成员初始化和基类初始化  358
  17.4.1 成员初始化  359
  17.4.2 基类初始化器  360
  17.4.3 委托构造函数  360
  17.4.4 类内初始化器  361
  17.4.5 static成员初始化  363
 17.5 复制和移动  364
  17.5.1 复制  364
  17.5.2 移动  369
 17.6 生成默认操作  372
  17.6.1 显式声明默认操作  372
  17.6.2 默认操作  373
  17.6.3 使用默认操作  373
  17.6.4 使用delete删除的函数  376
 17.7 建议  378

第 18章 运算符重载  379
 18.1 导言  379
 18.2 运算符函数  380
  18.2.1 二元和一元运算符  381
  18.2.2 运算符的预置含义  382
  18.2.3 运算符和用户自定义类型  382
  18.2.4 传递对象  383
  18.2.5 命名空间中的运算符  383
 18.3 复数类型  385
  18.3.1 成员和非成员运算符  385
  18.3.2 混合模式运算  386
  18.3.3 类型转换  387
  18.3.4 字面量  389
  18.3.5 访问函数  390
  18.3.6 辅助函数  390
 18.4 类型转换  391
  18.4.1 类型转换运算符  391
  18.4.2 显式类型转换运算符  393
  18.4.3 歧义  393
 18.5 建议  394

第 19章 特殊运算符  396
 19.1 导言  396
 19.2 特殊运算符  396
  19.2.1 取下标  396
  19.2.2 函数调用  397
  19.2.3 解引用  398
  19.2.4 自增和自减  400
  19.2.5 分配和释放  401
  19.2.6 用户自定义字面量  402
 19.3 字符串类  405
  19.3.1 基本操作  405
  19.3.2 访问字符  406
  19.3.3 类的表示  407
  19.3.4 成员函数  409
  19.3.5 辅助函数  410
  19.3.6 应用String  412
 19.4 友元  413
  19.4.1 发现友元  414
  19.4.2 友元与成员  415
 19.5 建议  416

第 20章 派生类  417
 20.1 导言  417
 20.2 派生类  418
  20.2.1 成员函数  419
  20.2.2 构造函数和析构函数  420
 20.3 类层次结构  421
  20.3.1 类型域  421
  20.3.2 虚函数  423
  20.3.3 显式限定  425
  20.3.4 覆盖控制  425
  20.3.5 using基类成员  428
  20.3.6 返回类型放宽  431
 20.4 抽象类  432
 20.5 访问控制  434
  20.5.1 受保护成员  436
  20.5.2 访问基类  437
  20.5.3 using声明和访问控制  438
 20.6 成员指针  439
  20.6.1 函数成员指针  439
  20.6.2 数据成员指针  441
  20.6.3 基类和派生类成员  441
 20.7 建议  442

第 21章 类层次结构  443
 21.1 导言  443
 21.2 类层次结构的设计  443
  21.2.1 实现继承  443
  21.2.2 接口继承  446
  21.2.3 替代实现  447
  21.2.4 定位对象创建  450
 21.3 多重继承  451
  21.3.1 多重接口  451
  21.3.2 多重实现类  451
  21.3.3 *歧义  453
  21.3.4 重复使用基类  455
  21.3.5 虚基类  456
  21.3.6 重复基类与虚基类  460
 21.4 建议  462

下册

第 22章 运行时类型信息  463
 22.1 导言  463
 22.2 类层次结构导航  463
  22.2.1 dynamic_cast  464
  22.2.2 多重继承  466
  22.2.3 static_cast和dynamic_cast  467
  22.2.4 恢复接口  468
 22.3 双重分发和访问者  471
  22.3.1 双重分发  472
  22.3.2 访问者  473
 22.4 构造和析构  475
 22.5 类型识别  475
  22.5.1 扩展类型信息  477
 22.6 RTII的使用和误用  478
 22.7 建议  479

第 23章 模板  480
 23.1 介绍与概述  480
 23.2 一个简单字符串模板  481
  23.2.1 定义模板  483
  23.2.2 模板实例化  484
 23.3 类型检查  484
  23.3.1 类型等价性  485
  23.3.2 错误检测  486
 23.4 类模板成员  487
  23.4.1 数据成员  487
  23.4.2 成员函数  487
  23.4.3 成员类型别名  487
  23.4.4 静态成员  488
  23.4.5 成员类型  488
  23.4.6 成员模板  489
  23.4.7 友元  492
 23.5 函数模板  493
  23.5.1 函数模板实参  495
  23.5.2 函数模板实参推断  496
  23.5.3 函数模板重载  498
 23.6 模板别名  501
 23.7 源代码组织  502
  23.7.1 链接  503
 23.8 建议  504

第 24章 泛型编程  505
 24.1 导言  505
 24.2 算法和提升  506
 24.3 概念  508
  24.3.1 探索概念  509
  24.3.2 概念和约束  511
 24.4 具体化概念  512
  24.4.1 公理  514
  24.4.2 多实参概念  515
  24.4.3 值概念  516
  24.4.4 约束检查  517
  24.4.5 模板定义检查  517
 24.5 建议  519

第 25章 特化  520
 25.1 导言  520
 25.2 模板形参和实参  520
  25.2.1 类型作为实参  521
  25.2.2 值作为实参  522
  25.2.3 操作作为实参  523
  25.2.4 模板作为实参  525
  25.2.5 默认模板实参  525
 25.3 特化  527
  25.3.1 接口特化  528
  25.3.2 主模板  530
  25.3.3 特化顺序  531
  25.3.4 函数模板特化  531
 25.4 建议  533

第 26章 实例化  534
 26.1 导言  534
 26.2 模板实例化  534
  26.2.1 何时需要实例化  535
  26.2.2 手动控制实例化  536
 26.3 名称绑定  537
  26.3.1 依赖名称  538
  26.3.2 定义点绑定  539
  26.3.3 实例化点绑定  540
  26.3.4 多实例化点  542
  26.3.5 模板和命名空间  543
  26.3.6 过于激进的ADL  543
  26.3.7 来自基类的名称  545
 26.4 建议  547

第 27章 模板和层次结构  548
 27.1 导言  548
 27.2 参数化和层次结构  548
  27.2.1 生成类型  550
  27.2.2 模板类型转换  551
 27.3 类模板层次结构  552
  27.3.1 模板作为接口  553
 27.4 模板参数作为基类  553
  27.4.1 组合数据结构  554
  27.4.2 线性化类层次结构  557
 27.5 建议  561

第 28章 元编程  562
 28.1 导言  562
 28.2 类型函数  563
  28.2.1 类型别名  565
  28.2.2 类型谓词  566
  28.2.3 选择函数  567
  28.2.4 萃取  568
 28.3 控制结构  569
  28.3.1 选择  569
  28.3.2 迭代和递归  572
  28.3.3 何时使用元编程  573
 28.4 条件定义:Enable_if  573
  28.4.1 使用Enable_if  575
  28.4.2 实现Enable_if  576
  28.4.3 Enable_if和概念  576
  28.4.4 更多Enable_if示例  577
 28.5 编译时列表: Tuple  579
  28.5.1 一个简单的输出函数  580
  28.5.2 元素访问  581
  28.5.3 make_tuple  584
 28.6 可变参数模板  584
  28.6.1 一个类型*的printf()  584
  28.6.2 技术细节  586
  28.6.3 转发  587
  28.6.4 标准库tuple  588
 28.7 国际标准单位示例  591
  28.7.1 Unit  591
  28.7.2 Quantity  592
  28.7.3 Unit字面量  594
  28.7.4 实用函数  594
 28.8 建议  596

第 29章 矩阵设计  597
 29.1 导言  597
  29.1.1 基本矩阵用途  597
  29.1.2 矩阵要求  599
 29.2 矩阵模板  599
  29.2.1 构造和赋值  600
  29.2.2 下标和切片  602
 29.3 矩阵算术运算  604
  29.3.1 标量运算  604
  29.3.2 加法  605
  29.3.3 乘法  606
 29.4 矩阵实现  607
  29.4.1 slice()  607
  29.4.2 矩阵切片  608
  29.4.3 Matrix_ref  609
  29.4.4 矩阵列表初始化  610
  29.4.5 矩阵访问  612
  29.4.6 *维矩阵  614
 29.5 解线性方程  614
  29.5.1 *高斯消元法  615
  29.5.2 主元选取  616
  29.5.3 测试  616
  29.5.4 熔合运算  617
 29.6 建议  619

第4篇 标准库

第30章 标准库概览  622
 30.1 导言  622
  30.1.1 标准库设施  622
  30.1.2 设计约束  623
  30.1.3 描述风格  624
 30.2 头文件  624
 30.3 语言支持  628
  30.3.1 initializer_list支持  628
  30.3.2 范围for支持  629
 30.4 错误处理  629
  30.4.1 异常  629
  30.4.2 断言  632
  30.4.3 system_error  633
 30.5 建议  640

第31章 STL容器  642
 31.1 导言  642
 31.2 容器概览  642
  31.2.1 容器表示  644
  31.2.2 元素要求  645
 31.3 操作概览  647
  31.3.1 成员类型  649
  31.3.2 构造函数、析构函数和赋值操作  650
  31.3.3 大小和容量  651
  31.3.4 迭代器  651
  31.3.5 元素访问  652
  31.3.6 栈操作  653
  31.3.7 列表操作  653
  31.3.8 其他操作  654
 31.4 容器  654
  31.4.1 vector  654
  31.4.2 链表  657
  31.4.3 关联容器  659
 31.5 容器适配器  667
  31.5.1 stack  668
  31.5.2 queue  669
  31.5.3 priority_queue  669
 31.6 建议  670

第32章 STL算法  672
 32.1 导言  672
 32.2 算法  672
  32.2.1 序列  672
 32.3 策略实参  674
  32.3.1 复杂度  675
 32.4 不修改序列的算法  675
  32.4.1 for_each()  675
  32.4.2 序列谓词  676
  32.4.3 count()  676
  32.4.4 find()  676
  32.4.5 equal()和mismatch()  677
  32.4.6 search()  678
 32.5 修改序列的算法  678
  32.5.1 copy()  679
  32.5.2 unique()  679
  32.5.3 remove()和replace()  680
  32.5.4 rotate()、random_shuffle()和partition()  681
  32.5.5 排列  682
  32.5.6 fill()  682
  32.5.7 swap()  683
 32.6 排序和搜索  683
  32.6.1 二分搜索  685
  32.6.2 merge()  686
  32.6.3 集合算法  687
  32.6.4 堆  688
  32.6.5 lexicographical_compare()  688
 32.7 *小值和*值  689
 32.8 建议  690

第33章 STL迭代器  691
 33.1 导言  691
  33.1.1 迭代器模型  691
  33.1.2 迭代器类别  692
  33.1.3 迭代器萃取  693
  33.1.4 迭代器操作  695
 33.2 迭代器适配器  696
  33.2.1 反向迭代器  696
  33.2.2 插入迭代器  698
  33.2.3 移动迭代器  699
 33.3 范围访问函数  699
 33.4 函数对象  700
 33.5 函数适配器  701
  33.5.1 bind()  701
  33.5.2 mem_fn()  703
  33.5.3 function  703
 33.6 建议  705

第34章 内存和资源  706
 34.1 导言  706
 34.2 “拟容器”  706
  34.2.1 array  707
  34.2.2 bitset  709
  34.2.3 vector   712
  34.2.4 元组  713
 34.3 资源管理指针  716
  34.3.1 unique_ptr  716
  34.3.2 shared_ptr  719
  34.3.3 weak_ptr  721
 34.4 分配器  723
  34.4.1 默认分配器  724
  34.4.2 分配器萃取  725
  34.4.3 指针萃取  726
  34.4.4 限域的分配器  726
 34.5 垃圾收集接口  728
 34.6 未初始化内存  730
  34.6.1 临时缓冲区  730
  34.6.2 raw_storage_iterator  730
 34.7 建议  731

第35章 工具  732
 35.1 导言  732
 35.2 时间  732
  35.2.1 duration  733
  35.2.2 time_point  735
  35.2.3 时钟  736
  35.2.4 时间萃取  737
 35.3 编译时有理数运算  738
 35.4 类型函数  739
  35.4.1 类型萃取  739
  35.4.2 类型生成器  742
 35.5 更多工具  746
  35.5.1 move()和forward()  747
  35.5.2 swap()  747
  35.5.3 关系运算符  748
  35.5.4 比较和哈希type_info  749
 35.6 建议  749

第36章 字符串  750
 36.1 导言  750
 36.2 字符分类  750
  36.2.1 分类函数  750
  36.2.2 字符萃取  751
 36.3 字符串  752
  36.3.1 string与C风格字符串  753
  36.3.2 构造函数  754
  36.3.3 基本操作  755
  36.3.4 字符串I/O  756
  36.3.5 数值转换  757
  36.3.6 类STL操作  758
  36.3.7 find系列函数  760
  36.3.8 子串  761
 36.4 建议  762

第37章 正则表达式  763
 37.1 正则表达式  763
  37.1.1 正则表达式表示法  764
 37.2 regex  767
  37.2.1 匹配结果  768
  37.2.2 格式化  771
 37.3 正则表达式函数  771
  37.3.1 regex_match()  772
  37.3.2 regex_search()  773
  37.3.3 regex_replace()  774
 37.4 正则表达式迭代器  775
  37.4.1 regex_iterator  775
  37.4.2 regex_token_iterator  776
 37.5 regex_traits  778
 37.6 建议  778

第38章 I/O流  779
 38.1 导言  779
 38.2 I/O流层次结构  781
  38.2.1 文件流  781
  38.2.2 字符串流  782
 38.3 错误处理  784
 38.4 I/O操作  785
  38.4.1 输入操作  785
  38.4.2 输出操作  788
  38.4.3 操纵符  789
  38.4.4 流状态  790
  38.4.5 格式化  794
 38.5 流迭代器  799
 38.6 缓冲  800
  38.6.1 输出流和缓冲区  802
  38.6.2 输入流和缓冲区  803
  38.6.3 缓冲区迭代器  804
 38.7 建议  805

第39章 区域设置  807
 39.1 处理文化差异  807
 39.2 locale类  809
  39.2.1 命名的locale  810
  39.2.2 string的比较  813
 39.3 facet类  813
  39.3.1 访问locale中的facet  814
  39.3.2 一个简单的用户自定义facet  815
  39.3.3 locale和facet的使用  817
 39.4 标准facet  817
  39.4.1 string的比较  819
  39.4.2 数值格式化  821
  39.4.3 货币格式化  825
  39.4.4 日期和时间格式化  829
  39.4.5 字符分类  831
  39.4.6 字符编码转换  834
  39.4.7 消息  837
 39.5 便利接口  840
  39.5.1 字符分类  840
  39.5.2 字符转换  841
  39.5.3 字符串转换  841
  39.5.4 缓冲区转换  842
 39.6 建议  843

第40章 数值  844
 40.1 导言  844
 40.2 数值极限  844
  40.2.1 数值极限宏  846
 40.3 标准数学函数  847
 40.4 complex复数  848
 40.5 数值数组:valarray  849
  40.5.1 构造函数和赋值  849
  40.5.2 下标  851
  40.5.3 运算  852
  40.5.4 切片  854
  40.5.5 slice_array  856
  40.5.6 通用切片  856
 40.6 通用数值算法  857
  40.6.1 accumulate()  858
  40.6.2 inner_product()  859
  40.6.3 partial_sum()与adjacent_difference()  859
  40.6.4 iota()  860
 40.7 随机数  860
  40.7.1 引擎  862
  40.7.2 随机设备  864
  40.7.3 分布  864
  40.7.4 C风格随机数  867
 40.8 建议  868

第41章 并发  869
 41.1 导言  869
 41.2 内存模型  870
  41.2.1 内存位置  870
  41.2.2 指令重排  871
  41.2.3 内存序  872
  41.2.4 数据竞争  873
 41.3 原子性  874
  41.3.1 原子类型  875
  41.3.2 原子标志和栅栏  879
 41.4 volatile  880
 41.5 建议  880

第42章 线程和任务  881
 42.1 导言  881
 42.2 线程  881
  42.2.1 身份  882
  42.2.2 构造  883
  42.2.3 析构  884
  42.2.4 join()  884
  42.2.5 detach()  885
  42.2.6 命名空间this_thread  886
  42.2.7 杀死thread  887
  42.2.8 thread_local数据  887
 42.3 避免数据竞争  888
  42.3.1 互斥量  889
  42.3.2 多重锁  895
  42.3.3 call_once()  896
  42.3.4 条件变量  897
 42.4 基于任务的并发  900
  42.4.1 future和promise  901
  42.4.2 promise  901
  42.4.3 packaged_task  902
  42.4.4 future  905
  42.4.5 shared_future  907
  42.4.6 async()  907
  42.4.7 一个并行find()示例  909
 42.5 建议  911

第43章 C标准库  913
 43.1 导言  913
 43.2 文件  913
 43.3 printf()系列函数  914
 43.4 C风格字符串  916
 43.5 内存  917
 43.6 日期和时间  918
 43.7 其他  921
 43.8 建议  922

第44章 兼容性  923
 44.1 导言  923
 44.2 C++11扩展  923
  44.2.1 语言特性  923
  44.2.2 标准库组件  924
  44.2.3 弃用特性  925
  44.2.4 应对早期C++实现  926
 44.3 C/C++兼容性  926
  44.3.1 C和C++是兄弟  926
  44.3.2 “静默”差异  927
  44.3.3 不兼容C++的C代码  928
  44.3.4 不兼容C的C++代码  930
 44.4 建议  931

人民邮电出版社有限公司店铺主页二维码
人民邮电出版社有限公司 微信公众号认证
人民邮电出版社微店,为您提供最全面,最专业的一站式购书服务
扫描二维码,访问我们的微信店铺
随时随地的购物、客服咨询、查询订单和物流...

C++程序设计语言 第4版 上下册 C++编程入门*编程 程序设计基础教程 c语言入门

手机启动微信
扫一扫购买

收藏到微信 or 发给朋友

1. 打开微信,扫一扫左侧二维码

2. 点击右上角图标

点击右上角分享图标

3. 发送给朋友、分享到朋友圈、收藏

发送给朋友、分享到朋友圈、收藏

微信支付

支付宝

扫一扫购买

打开微信,扫一扫

或搜索微信号:renyoushe
人民邮电出版社官方微信公众号

收藏到微信 or 发给朋友

1. 打开微信,扫一扫左侧二维码

2. 点击右上角图标

点击右上角分享图标

3. 发送给朋友、分享到朋友圈、收藏

发送给朋友、分享到朋友圈、收藏