Bjarne Stroustrup《C++程序设计语言》

¥89.00¥89.00
已下架(本产品缺货或未上线)

商品介绍

内容简介

      《C++程序设计语言》(原书第4版)是C++领域经典的参考书,介绍了C++11的各项新特性和新功能。全书共分四部分。部分(第1~5章)是引言,包括C++的背景知识,C++语言及其标准库的简要介绍;第二部分(第6~15章)介绍C++的内置类型和基本特性,以及如何用它们构造程序;第三部分(第16~29章)介绍C++的抽象机制及如何用这些机制编写面向对象程序和泛型程序;第四部分(第30~44章)概述标准库并讨论一些兼容性问题。由于篇幅问题,原书中文版分两册出版,分别对应原书的至三部分和第四部分。这一册为第四部分。

 

目录

出版者的话

译者序

前言

第3版前言

第2版前言

第1版前言

第四部分 标准库

 第30章 标准库概览 2

  30.1 引言 2

  30.1.1 标准库设施 2

  30.1.2 设计约束 4

  30.1.3 描述风格 4

  30.2 头文件 5

  30.3 语言支持 9

  30.3.1 initializer_list支持 9

  30.3.2 范围for支持 10

  30.4 错误处理 10

  30.4.1 异常 10

  30.4.2 断言 14

  30.4.3 system_error 15

  30.5 建议 23

 第31章 STL容器 24

  31.1 引言 24

  31.2 容器概览 24

  31.2.1 容器表示 27

  31.2.2 对元素的要求 28

  31.3 操作概览 30

  31.3.1 成员类型 32

  31.3.2 构造函数、析构函数和赋值操作 33

  31.3.3 大小和容量 34

  31.3.4 迭代器 35

  31.3.5 元素访问 36

  31.3.6 栈操作 36

  31.3.7 列表操作 37

  31.3.8 其他操作 38

  31.4 容器 38

  31.4.1 vector 38

  31.4.2 链表 42

  31.4.3 关联容器 44

  31.5 容器适配器 53

  31.5.1 stack 54

  31.5.2 queue 55

  31.5.3 priority_queue 56

  31.6 建议 57

 第32章 STL算法 59

  32.1 引言 59

  32.2 算法 59

  32.2.1 序列 60

  32.3 策略实参 61

  32.3.1 复杂性 62

  32.4 不修改序列的算法 63

  32.4.1 for_each() 63

  32.4.2 序列谓词 63

  32.4.3 count() 63

  32.4.4 find() 64

  32.4.5 equal()和mismatch() 64

  32.4.6 search() 65

  32.5 修改序列的算法 66

  32.5.1 copy() 66

  32.5.2 unique() 67

  32.5.3 remove()和replace() 68

  32.5.4 rotate()、random_shuffle()和partition() 69

  32.5.5 排列 70

  32.5.6 fill() 70

  32.5.7 swap() 71

  32.6 排序和搜索 71

  32.6.1 二分搜索 74

  32.6.2 merge() 75

  32.6.3 集合算法 75

  32.6.4 堆 76

  32.6.5 lexicographical_compare() 77

  32.7 最大值和最小值 78

  32.8 建议 79

 第33章 STL迭代器 80

  33.1 引言 80

  33.1.1 迭代器模型 80

  33.1.2 迭代器类别 81

  33.1.3 迭代器萃取 82

  33.1.4 迭代器操作 85

  33.2 迭代器适配器 85

  33.2.1 反向迭代器 86

  33.2.2 插入迭代器 88

  33.2.3 移动迭代器 89

  33.3 范围访问函数 89

  33.4 函数对象 90

  33.5 函数适配器 91

  33.5.1 bind() 92

  33.5.2 mem_fn() 93

  33.5.3 function 93

  33.6 建议 95

 第34章 内存和资源 96

  34.1 引言 96

  34.2 “拟容器” 96

  34.2.1 array 97

  34.2.2 bitset 99

  34.2.3 vector 103

  34.2.4 元组 104

  34.3 资源管理指针 107

  34.3.1 unique_ptr 108

  34.3.2 shared_ptr 111

  34.3.3 weak_ptr 113

  34.4 分配器 115

  34.4.1 默认分配器 116

  34.4.2 分配器萃取 118

  34.4.3 指针萃取 119

  34.4.4 限域的分配器 119

  34.5 垃圾收集接口 121

  34.6 未初始化内存 123

  34.6.1 临时缓冲区 123

  34.6.2 raw_storage_iterator 124

  34.7 建议 125

 第35章 工具 126

  35.1 引言 126

  35.2 时间 126

  35.2.1 duration 127

  35.2.2 time_point 129

  35.2.3 时钟 131

  35.2.4 时间萃取 132

  35.3 编译时有理数运算 132

  35.4 类型函数 134

  35.4.1 类型萃取 134

  35.4.2 类型生成器 138

  35.5 其他工具 142

  35.5.1 move()和forward() 142

  35.5.2 swap() 143

  35.5.3 关系运算符 143

  35.5.4 比较和哈希type_info 144

  35.6 建议 145

 第36章 字符串 146

  36.1 引言 146

  36.2 字符分类 146

  36.2.1 分类函数 146

  36.2.2 字符萃取 147

  36.3 字符串 148

  36.3.1 string与C风格字符串 149

  36.3.2 构造函数 151

  36.3.3 基本操作 152

  36.3.4 字符串I/O 153

  36.3.5 数值转换 154

  36.3.6 类STL操作 155

  36.3.7 find系列函数 157

  36.3.8 子串 158

  36.4 建议 159

 第37章 正则表达式 160

  37.1 正则表达式 160

  37.1.1 正则表达式符号表示 161

  37.2 regex 165

  37.2.1 匹配结果 166

  37.2.2 格式化 169

  37.3 正则表达式函数 170

  37.3.1 regex_match() 170

  37.3.2 regex_search() 171

  37.3.3 regex_replace() 172

  37.4 正则表达式迭代器 173

  37.4.1 regex_iterator 173

  37.4.2 regex_token_iterator 175

  37.5 regex_traits 176

  37.6 建议 177

  第38章 I/O流 178

  38.1 引言 178

  38.2 I/O流层次 180

  38.2.1 文件流 180

  38.2.2 字符串流 182

  38.3 错误处理 183

  38.4 I/O操作 184

  38.4.1 输入操作 185

  38.4.2 输出操作 187

  38.4.3 操纵符 189

  38.4.4 流状态 190

  38.4.5 格式化 194

  38.5 流迭代器 200

  38.6 缓冲 201

  38.6.1 输出流和缓冲区 204

  38.6.2 输入流和缓冲区 205

  38.6.3 缓冲区迭代器 205

  38.7 建议 207

 第39章 区域设置 209

  39.1 处理文化差异 209

  39.2 类locale 211

  39.2.1 命名locale 213

  39.2.2 比较string 216

  39.3 类facet 217

  39.3.1 访问locale中的facet 218

  39.3.2 一个简单的用户自定义facet 218

  39.3.3 locale和facet的使用 221

  39.4 标准facet 221

  39.4.1 string比较 223

  39.4.2 数值格式化 226

  39.4.3 货币格式化 231

  39.4.4 日期和时间格式化 235

  39.4.5 字符分类 238

  39.4.6 字符编码转换 241

  39.4.7 消息 244

  39.5 便利接口 248

  39.5.1 字符分类 248

  39.5.2 字符转换 248

  39.5.3 字符串转换 249

  39.5.4 缓冲区转换 250

  39.6 建议 250

 第40章 数值计算 252

  40.1 引言 252

  40.2 数值限制 252

  40.2.1 数值限制宏 255

  40.3 标准数学函数 255

  40.4 复数complex 257

  40.5 数值数组:valarray 258

  40.5.1 构造函数和赋值操作 258

  40.5.2 下标操作 260

  40.5.3 运算 261

  40.5.4 切片 263

  40.5.5 slice_array 265

  40.5.6 推广切片 265

  40.6 推广数值算法 267

  40.6.1 accumulate() 267

  40.6.2 inner_product() 268

  40.6.3 partial_sum()和adjacent_difference() 269

  40.6.4 iota() 270

  40.7 随机数 270

  40.7.1 引擎 272

  40.7.2 随机设备 274

  40.7.3 分布 274

  40.7.4 C风格随机数 277

 40.8 建议 278

 第41章 并发 279

  41.1 引言 279

  41.2 内存模型 280

  41.2.1 内存位置 281

  41.2.2 指令重排 282

  41.2.3 内存序 282

  41.2.4 数据竞争 283

  41.3 原子性 285

  41.3.1 atomic类型 287

  41.3.2 标志和栅栏 291

  41.4 volatile 292

  41.5 建议 292

 第42章 线程和任务 293

  42.1 引言 293

  42.2 线程 293

  42.2.1 身份 294

  42.2.2 构造 295

  42.2.3 析构 296

  42.2.4 join() 297

  42.2.5 detach() 298

  42.2.6 名字空间this_thread 299

  42.2.7 杀死thread 300

  42.2.8 thread_local数据 300

  42.3 避免数据竞争 302

  42.3.1 互斥量 302

  42.3.2 多重锁 309

  42.3.3 call_once() 311

  42.3.4 条件变量 311

  42.4 基于任务的并发 315

  42.4.1 future和promise 316

  42.4.2 promise 317

  42.4.3 packaged_task 318

  42.4.4 future 320

  42.4.5 shared_future 323

  42.4.6 async() 323

  42.4.7 一个并行find()示例 325

  42.5 建议 328

 第43章 C标准库 330

  43.1 引言 330

  43.2 文件 330

  43.3 printf()系列函数 331

  43.4 C风格字符串 334

  43.5 内存 335

  43.6 日期和时间 336

  43.7 杂项 339

 43.8 建议 340

 第44章 兼容性 341

  44.1 引言 341

  44.2 C++11扩展 341

  44.2.1 语言特性 341

  44.2.2 标准库组件 343

  44.2.3 弃用特性 344

  44.2.4 应对旧版本C++实现 344

  44.3 C/C++兼容性 345

  44.3.1 C和C++是兄弟 345

  44.3.2 “静默”差异 346

  44.3.3 不兼容C++的C代码 347

  44.3.4 不兼容C的C++代码 350

  44.4 建议 351

 

×

【提醒】购买纸书后,扫码即可免费领取购书大礼包!

如果你已购买本书,请扫一扫封面右上角的二维码,如下图:

如果你未购买纸书,请先购买:

立即购买

长按图片下载到相册
分享到微信、朋友圈、微博、QQ等
朋友注册并购买后,您可赚
取消