C++ 程序设计语言:第4部分 标准库(原书第4版
معرفی کتاب «C++ 程序设计语言:第4部分 标准库(原书第4版» نوشتهٔ (mei)Ben jia niSi te lao si te lu pu(Bjarne Stroustrup)Zhu; Wang gang, Yang ju feng yi، منتشرشده توسط نشر 机械工业出版社 Ji xie gong ye chu ban she در سال 2016. این کتاب در فرمت pdf، زبان zh ارائه شده است. «C++ 程序设计语言:第4部分 标准库(原书第4版» در دستهٔ بدون دستهبندی قرار دارد.
(yuan shu di 4 ban)Shi C++ ling yu zui jing dian de can kao shu, Jie shao le C++11 de ge xiang xin te xing he xin gong neng. Quan shu gong fen si bu fen. Di yi bu fen(di 1~5 zhang)Shi yin yan, Bao kuo C++ de bei jing zhi shi, C++ yu yan ji qi biao zhun ku de jian yao jie shao;Di er bu fen(di 6~15 zhang)Jie shao C++ de nei zhi lei xing he ji ben te xing, Yi ji ru he yong ta men gou zao cheng xu;Di san bu fen(di 16~29 zhang)Jie shao C++ de chou xiang ji zhi ji ru he yong zhei xie ji zhi bian xie mian xiang dui xiang cheng xu he fan xing cheng xu;Di si bu fen(di 30~44 zhang)Gai shu biao zhun ku bing tao lun yi xie jian rong xing wen ti. You yu pian fu wen ti, Yuan shu zhong wen ban fen liang ce chu ban, Fen bie dui ying yuan shu de di yi zhi san bu fen he di si bu fen. Zhei yi ce wei di yi zhi san bu fen. 封面 1 版权 3 前言 4 目录 15 第四部分 标准库 19 第30章 标准库概览 20 30.1 引言 20 30.1.1 标准库设施 20 30.1.2 设计约束 22 30.1.3 描述风格 22 30.2 头文件 23 30.3 语言支持 27 30.3.1 initializer_list支持 27 30.3.2 范围for支持 28 30.4 错误处理 28 30.4.1 异常 28 30.4.2 断言 32 30.4.3 system_error 33 30.5 建议 41 第31章 STL容器 42 31.1 引言 42 31.2 容器概览 42 31.2.1 容器表示 45 31.2.2 对元素的要求 46 31.3 操作概览 48 31.3.1 成员类型 50 31.3.2 构造函数、析构函数和赋值操作 51 31.3.3 大小和容量 52 31.3.4 迭代器 53 31.3.5 元素访问 54 31.3.6 栈操作 54 31.3.7 列表操作 55 31.3.8 其他操作 56 31.4 容器 56 31.4.1 vector 56 31.4.2 链表 60 31.4.3 关联容器 62 31.5 容器适配器 71 31.5.1 stack 72 31.5.2 queue 73 31.5.3 priority_queue 74 31.6 建议 75 第32章 STL算法 77 32.1 引言 77 32.2 算法 77 32.2.1 序列 78 32.3 策略实参 79 32.3.1 复杂性 80 32.4 不修改序列的算法 81 32.4.1 for_each() 81 32.4.2 序列谓词 81 32.4.3 count() 81 32.4.4 find() 82 32.4.5 equal()和mismatch() 82 32.4.6 search() 83 32.5 修改序列的算法 84 32.5.1 copy() 84 32.5.2 unique() 85 32.5.3 remove()和replace() 86 32.5.4 rotate()、random_shuffle()和partition() 87 32.5.5 排列 88 32.5.6 fill() 88 32.5.7 swap() 89 32.6 排序和搜索 89 32.6.1 二分搜索 92 32.6.2 merge() 93 32.6.3 集合算法 93 32.6.4 堆 94 32.6.5 lexicographical_compare() 95 32.7 最大值和最小值 96 32.8 建议 97 第33章 STL迭代器 98 33.1 引言 98 33.1.1 迭代器模型 98 33.1.2 迭代器类别 99 33.1.3 迭代器萃取 100 33.1.4 迭代器操作 103 33.2 迭代器适配器 103 33.2.1 反向迭代器 104 33.2.2 插入迭代器 106 33.2.3 移动迭代器 107 33.3 范围访问函数 107 33.4 函数对象 108 33.5 函数适配器 109 33.5.1 bind() 110 33.5.2 mem_fn() 111 33.5.3 function 111 33.6 建议 113 第34章 内存和资源 114 34.1 引言 114 34.2 “拟容器” 114 34.2.1 array 115 34.2.2 bitset 117 34.2.3 vector[bool] 121 34.2.4 元组 122 34.3 资源管理指针 125 34.3.1 unique_ptr 126 34.3.2 shared_ptr 129 34.3.3 weak_ptr 131 34.4 分配器 133 34.4.1 默认分配器 134 34.4.2 分配器萃取 136 34.4.3 指针萃取 137 34.4.4 限域的分配器 137 34.5 垃圾收集接口 139 34.6 未初始化内存 141 34.6.1 临时缓冲区 141 34.6.2 raw_storage_iterator 142 34.7 建议 143 第35章 工具 144 35.1 引言 144 35.2 时间 144 35.2.1 duration 145 35.2.2 time_point 147 35.2.3 时钟 149 35.2.4 时间萃取 150 35.3 编译时有理数运算 150 35.4 类型函数 152 35.4.1 类型萃取 152 35.4.2 类型生成器 156 35.5 其他工具 160 35.5.1 move()和forward() 160 35.5.2 swap() 161 35.5.3 关系运算符 161 35.5.4 比较和哈希type_info 162 35.6 建议 163 第36章 字符串 164 36.1 引言 164 36.2 字符分类 164 36.2.1 分类函数 164 36.2.2 字符萃取 165 36.3 字符串 166 36.3.1 string与C风格字符串 167 36.3.2 构造函数 169 36.3.3 基本操作 170 36.3.4 字符串I/O 171 36.3.5 数值转换 172 36.3.6 类STL操作 173 36.3.7 find系列函数 175 36.3.8 子串 176 36.4 建议 177 第37章 正则表达式 178 37.1 正则表达式 178 37.1.1 正则表达式符号表示 179 37.2 regex 183 37.2.1 匹配结果 184 37.2.2 格式化 187 37.3 正则表达式函数 188 37.3.1 regex_match() 188 37.3.2 regex_search() 189 37.3.3 regex_replace() 190 37.4 正则表达式迭代器 191 37.4.1 regex_iterator 191 37.4.2 regex_token_iterator 193 37.5 regex_traits 194 37.6 建议 195 第38章 I/O流 196 38.1 引言 196 38.2 I/O流层次 198 38.2.1 文件流 198 38.2.2 字符串流 200 38.3 错误处理 201 38.4 I/O操作 202 38.4.1 输入操作 203 38.4.2 输出操作 205 38.4.3 操纵符 207 38.4.4 流状态 208 38.4.5 格式化 212 38.5 流迭代器 218 38.6 缓冲 219 38.6.1 输出流和缓冲区 222 38.6.2 输入流和缓冲区 223 38.6.3 缓冲区迭代器 223 38.7 建议 225 第39章 区域设置 227 39.1 处理文化差异 227 39.2 类locale 229 39.2.1 命名locale 231 39.2.2 比较string 234 39.3 类facet 235 39.3.1 访问locale中的facet 236 39.3.2 一个简单的用户自定义facet 236 39.3.3 locale和facet的使用 239 39.4 标准facet 239 39.4.1 string比较 241 39.4.2 数值格式化 244 39.4.3 货币格式化 249 39.4.4 日期和时间格式化 253 39.4.5 字符分类 256 39.4.6 字符编码转换 259 39.4.7 消息 262 39.5 便利接口 266 39.5.1 字符分类 266 39.5.2 字符转换 266 39.5.3 字符串转换 267 39.5.4 缓冲区转换 268 39.6 建议 268 第40章 数值计算 270 40.1 引言 270 40.2 数值限制 270 40.2.1 数值限制宏 273 40.3 标准数学函数 273 40.4 复数complex 275 40.5 数值数组:valarray 276 40.5.1 构造函数和赋值操作 276 40.5.2 下标操作 278 40.5.3 运算 279 40.5.4 切片 281 40.5.5 slice_array 283 40.5.6 推广切片 283 40.6 推广数值算法 285 40.6.1 accumulate() 285 40.6.2 inner_product() 286 40.6.3 partial_sum()和adjacent_difference() 287 40.6.4 iota() 288 40.7 随机数 288 40.7.1 引擎 290 40.7.2 随机设备 292 40.7.3 分布 292 40.7.4 C风格随机数 295 40.8 建议 296 第41章 并发 297 41.1 引言 297 41.2 内存模型 298 41.2.1 内存位置 299 41.2.2 指令重排 300 41.2.3 内存序 300 41.2.4 数据竞争 301 41.3 原子性 303 41.3.1 atomic类型 305 41.3.2 标志和栅栏 309 41.4 volatile 310 41.5 建议 310 第42章 线程和任务 311 42.1 引言 311 42.2 线程 311 42.2.1 身份 312 42.2.2 构造 313 42.2.3 析构 314 42.2.4 join() 315 42.2.5 detach() 316 42.2.6 名字空间this_thread 317 42.2.7 杀死thread 318 42.2.8 thread_local数据 318 42.3 避免数据竞争 320 42.3.1 互斥量 320 42.3.2 多重锁 327 42.3.3 call_once() 329 42.3.4 条件变量 329 42.4 基于任务的并发 333 42.4.1 future和promise 334 42.4.2 promise 335 42.4.3 packaged_task 336 42.4.4 future 338 42.4.5 shared_future 341 42.4.6 async() 341 42.4.7 一个并行find()示例 343 42.5 建议 346 第43章 C标准库 348 43.1 引言 348 43.2 文件 348 43.3 printf()系列函数 349 43.4 C风格字符串 352 43.5 内存 353 43.6 日期和时间 354 43.7 杂项 357 43.8 建议 358 第44章 兼容性 359 44.1 引言 359 44.2 C++11扩展 359 44.2.1 语言特性 359 44.2.2 标准库组件 361 44.2.3 弃用特性 362 44.2.4 应对旧版本C++实现 362 44.3 C/C++兼容性 363 44.3.1 C和C++是兄弟 363 44.3.2 “静默”差异 364 44.3.3 不兼容C++的C代码 365 44.3.4 不兼容C的C++代码 368 44.4 建议 369 Ben shu gong fen si bu fen. di yi bu fen (di 1-5 zhang) shi yin yan, bao guaC + + de bei jing zhi shi, C + + yu yan ji qi biao zhun ku de jian yao jie shao ; di er bu fen (di 6-15 zhang) jie shaoC + + de nei zhi lei xing he ji ben te xing, yi ji ru he yong ta men gou zao cheng xu ; di san bu fen (di 16-29 zhang) jie shaoC + + de chou xiang ji zhi ji ru he yong zhe xie ji zhi bian xie mian xiang dui xiang cheng xu he fan xing cheng xu ; di si bu fen (di 30-44 zhang) gai shu biao zhun ku bing tao lun yi xie jian rong xing wen ti. you yu pian fu wen ti, yuan shu zhong wen ban fen liang ce chu ban, fen bie dui ying yuan shu de di yi zhi san bu fen he di si bu fen 作为C++语言的发明者和主要维护者,Bjarne Stroustrup在撰写本书时绝不仅仅满足于阐明语法和知识点本身。他试图向读者揭示各个语言功能的设计初衷,以及他对各种制约因素是如何考虑并妥协的。对于大多数读者来说,这种视角新奇而有趣。他们不再只是被动的学习者,在知道了"是什么"和"为什么"之后,还可以大胆地揣测"C++语言接下来该如何继续发展"。不得不说,这是本书与其他C++书籍的最大区别。作者在写作中融入了很多自己的工程实践经验。学习程序设计语言与学习文化课有很大的不同。设计程序的过程是一门艺术,程序语言只是完成艺术作品所需的工具。举个例子来说,由于各种各样的原因,在C++中存在一些语言特性,它们的功能和作用非常类似。那么这些特性之间是何关系?在遇到某类实际问题时应该如何聪明地选择?本书很好地回答了此类问题。 (原书第4版)是C++领域最经典的参考书, 介绍了C++11的各项新特性和新功能.全书共分四部分.第一部分(第1~5章)是引言, 包括C++的背景知识, C++语言及其标准库的简要介绍;第二部分(第6~15章)介绍C++的内置类型和基本特性, 以及如何用它们构造程序;第三部分(第16~29章)介绍C++的抽象机制及如何用这些机制编写面向对象程序和泛型程序;第四部分(第30~44章)概述标准库并讨论一些兼容性问题.由于篇幅问题, 原书中文版分两册出版, 分别对应原书的第一至三部分和第四部分.这一册为第一至三部分 本书共分四部分.第一部分(第1-5章)是引言,包括c++的背景知识,c++语言及其标准库的简要介绍;第二部分(第6-15章)介绍c++的内置类型和基本特性,以及如何用它们构造程序;第三部分(第16-29章)介绍c++的抽象机制及如何用这些机制编写面向对象程序和泛型程序;第四部分(第30-44章)概述标准库并讨论一些兼容性问题.
دانلود کتاب C++ 程序设计语言:第4部分 标准库(原书第4版