• C++标准库(第2版)
21年品牌 40万+商家 超1.5亿件商品

C++标准库(第2版)

正版保障 假一赔十 可开发票

126.03 5.5折 228 全新

库存4件

广东广州
认证卖家担保交易快速发货售后保障

作者Nicolai M. Josuttis(尼古拉·约祖蒂斯)

出版社电子工业出版社

ISBN9787121260896

出版时间2021-02

装帧平装

开本其他

定价228元

货号29205544

上书时间2024-10-26

兴文书店

三年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
前言

我从未想过本书第1 版会卖得如此长久。现在,经过12 年的等待,出新版本的时候到了,一个涵盖C 11标准的新版本。
  注意,其中的意义比仅仅添加新子库更多更大。C 已经改变了,其标准库的几乎所有典型应用如今看起来都有那么一点不同。这不是因为语言出现巨大变化,而是许多小改变造成的结果,例如运用rvalue reference 和move semantic、range-based 书乯乲loop、乡乵乴乯,以及新的template特性。因此,本书不但展现原标准库的补充特性及新成员,书中所有例子也都重新写过,或至少局部改写。尽管如此,为了支持那些仍然使用“旧” C 环境的程序员,本书会在遭遇C 版本差异时加以描述。
  我学习C 11有一段艰难的历程。大约两年前我开始看C 11 但并未追随标准化的脚步,因此确实遭遇了理解上的麻烦。但是标准委员会的人帮助我描述及表现C 11 新特性,一如它们如今呈现的样貌。
  后,请注意,本书有个困扰:虽然份量上由800 页成长到超过1 100 页,我还是无法完整呈现C 标准库。标准库中单单针对C 11 就有大约750 页的描述,都是十分精练的文字,没有太多说明。基于这个原因,我必须取舍哪些特性需要描述,并决定以怎样的粒度描述之。再一次, C 社区中的许多人帮助我做出决定。我的企图集中在普通程序员需要的东西。若干本书舍弃的部分被我做成一份补充篇章放在本书官网乨乴乴买为丯丯乷乷乷丮乣买买乳乴乤乬乩乢丮乣乯乭。即便如此,你还是会在C 标准规格书中找到我未曾讨论的细节。
  教学的艺术,并非体现在“呈现每一面”,而是一种“沙里淘金”的艺术,从中取得价值。但愿我是成功的。



导语摘要

本书是全球 C 经典权威参考书籍时隔 12 年,基于 C 11 标准的全新重大升级。标准库提供了一组公共类和接口,极大地拓展了 C 语言核心功能。《C 标准库(第2版)》详细讲解了每一标准库组件,包括其设计目的和方法、复杂概念的剖析、实用而高效的编程细节、存在的陷阱、重要的类和函数,又辅以大量用 C 11 标准实现的实用代码范例。除覆盖全新组件、特性外,本书一如前版,重点着眼于标准模板库(STL),涉及容器、迭代器、函数对象以及 STL 算法。此外,本书同样关注 lambda 表达式、基于区间的for循环、move语义及可变参数模板等标准库中的新式 C 编程风格及其影响。



作者简介

尼古拉·约祖蒂斯,独立技术顾问,曾为电信、交通、金融和制造业设计过大中型软件系统。他还是C 标准委员会工作组早期成员,并因撰写的权威C 图书而享有盛名。除1999年出版的本书第1版(享誉全球的C 畅销图书)外,他还是《C Templates: The Complete Guide》和《SOA实践指南:分布式系统设计的艺术》的作者。
侯捷,海峡两岸著名的电脑技术自由作家,对于技术的钻研和发表,有独特的品性与坚持。作品涵盖著、译、评三方面,散见于各种刊特、媒体、网站论坛,深受读者喜爱和尊敬。



目录

目录 
第 2 版译序 xxi 
第 2 版序言 xxiii 
第 2 版致谢 xxiv 
第 1 版序言 xxv 
第 1 版致谢 xxvi 
1 关于本书 1 
1.1 缘起 1 
1.2 阅读前的必要基础 2 
1.3 本书风格与结构 2 
1.4 如何阅读本书 4 
1.5 目前发展情势 5 
1.6 范例代码及额外信息 5 
1.7 反馈 5 
2 C 及标准库简介 7 
2.1 C Standard 的历史 7 
2.1.1 C 11 Standard 常见疑问 8 
2.1.2 C 98 和 C 11 的兼容性 9 
2.2 复杂度与 Big-O 标记 10 
3 语言新特性 13 
3.1 C 11 语言新特性 13 
3.1.1 微小但重要的语法提升 13 
3.1.2 以 auto 完成类型自动推导 14 
3.1.3 一致性初始化(Uniform Initialization)与初值列(Initializer List) 15 
3.1.4 Range-Based for 循环 17 
3.1.5 Move 语义和 Rvalue Reference 19 
3.1.6 新式的字符串字面常量(String Literal) 23 
3.1.7 关键字 noexcept 24 
3.1.8 关键字 constexpr 26 
3.1.9 崭新的 Template 特性 26 
3.1.10 Lambda 28 
3.1.11 关键字 decltype 32 
3.1.12 新的函数声明语法(New Function Declaration Syntax) 32 
3.1.13 带领域的(Scoped) Enumeration 32 
3.1.14 新的基础类型(New Fundamental Data Type) 33 
3.2 虽旧犹新的语言特性 33 
3.2.1 基础类型的明确初始化(Explicit Initialization for Fundamental Type) 37 
3.2.2 main()定义式 37 
4 一般概念 39 
4.1 命名空间(Namespace)std 39 
4.2 头文件(Header File) 40 
4.3 差错和异常(Error and Exception)的处理 41 
4.3.1 标准的 Exception Class(异常类) 41 
4.3.2 异常类(Exception Class)的成员 44 
4.3.3 以 Class exception_ptr 传递异常 52 
4.3.4 抛出标准异常 53 
4.3.5 自标准异常类派生 54 
4.4 Callable Object(可被调用的对象) 54 
4.5 并发与多线程 55 
4.6 分配器(Allocator) 57 
5 通用工具 59 
5.1 Pair 和 Tuple 60 
5.1.1 Pair 60 
5.1.2 Tuple(不定数的值组) 68 
5.1.3 Tuple 的输入/输出 74 
5.1.4 tuple 和 pair 转换 75 
5.2 Smart Pointer(智能指针) 76 
5.2.1 Class shared_ptr 76 
5.2.2 Class weak_ptr 84 
5.2.3 误用 Shared Pointer 89 
5.2.4 细究 Shared Pointer 和 Weak Pointer 92 
5.2.5 Class unique_ptr 98 
5.2.6 细究 Class unique_ptr 110 
5.2.7 Class auto_ptr 113 
5.2.8 Smart Pointer 结语 114 
5.3 数值的极值(Numeric Limit) 115 
5.4 Type Trait 和 Type Utility 122 
5.4.1 Type Trait 的目的 122 
5.4.2 细究 Type Trait 125 
5.4.3 Reference Wrapper(外覆器) 132 
5.4.4 Function Type Wrapper(外覆器) 133 
5.5 辅助函数 134 
5.5.1 挑选小值和值 134 
5.5.2 两值互换(Swapping) 136 
5.5.3 增补的“比较操作符”(Comparison Operator) 138 
5.6 Class ratio<> 的编译期分数运算 140 
5.7 Clock 和 Timer 143 
5.7.1 Chrono 程序库概观 143 
5.7.2 Duration(时间段) 144 
5.7.3 Clock(时钟)和 Timepoint(时间点) 149 
5.7.4 C 和 POSIX 提供的 Date/Time 函数 157 
5.7.5 以计时器停滞线程(Blocking with Timer) 160 
5.8 头文件 <cstddef>、<cstdlib> 和 <cstring> 161 
5.8.1 <cstddef> 内的各项定义 161 
5.8.2 <cstdlib> 内的各种定义 162 
5.8.3 <cstring> 中的定义式 163 
6 标准模板库 165 
6.1 STL 组件(Component) 165 
6.2 容器(Container) 167 
6.2.1 序列式容器(Sequence Container) 169 
6.2.2 关联式容器(Associative Container) 177 
6.2.3 无序容器(Unordered Container) 180 
6.2.4 关联式数组(Associative Array) 185 
6.2.5 其他容器 187 
6.2.6 容器适配器(Container Adapter) 188 
6.3 迭代器(Iterator) 188 
6.3.1 关联式( Associative )及无序 ( Unordered )容器的更多实例 193 
6.3.2 迭代器种类(Iterator Category) 198 
6.4 算法(Algorithm) 199 
6.4.1 区间(Range) 203 
6.4.2 处理多重区间(Multiple Ranges) 207 
6.5 迭代器之适配器(Iterator Adapter) 210 
6.5.1 Insert Iterator(安插型迭代器) 210 
6.5.2 Stream Iterator(串流迭代器) 212 
6.5.3 Reverse Iterator(反向迭代器) 214 
6.5.4 Move Iterator(搬移迭代器) 216 
6.6 用户自定义的泛型函数(User-Defined Generic Function) 216 
6.7 更易型算法(Manipulating Algorithm) 217 
6.7.1 移除(Removing)元素 218 
6.7.2 更易 Associative(关联式)和 Unordered(无序)容器 221 
6.7.3 算法 vs. 成员函数 223 
6.8 以函数作为算法的实参 224 
6.8.1 以函数作为算法实参的实例示范 224 
6.8.2 判断式(Predicate) 226 
6.9 使用 Lambda 229 
6.10 函数对象(Function Object) 233 
6.10.1 定义一个函数对象 233 
6.10.2 预定义的函数对象 239 
6.10.3 Binder 241 
6.10.4 函数对象 vs. Lambda 243 
6.11 容器内的元素 244 
6.11.1 容器元素的必要条件 244 
6.11.2 Value 语义 vs. Reference 语义 245 
6.12 STL 内部的错误和异常 245 
6.12.1 错误处理(Error Handling) 246 
6.12.2 异常处理(Exception Handling) 248 
6.13 扩展 STL 250 
6.13.1 整合更多 Type 250 
6.13.2 派生自 STL Type 251 
7 STL 容器 253 
7.1 容器的共通能力和共通操作 254 
7.1.1 容器的共通能力 254 
7.1.2 容器的共通操作 254 
7.1.3 容器提供的类型 260 
7.2 Array 261 
7.2.1 Array 的能力 261 
7.2.2 Array 的操作 263 
7.2.3 把array当成 C-Style Array 267 
7.2.4 异常处理( Exception Handling ) 268 
7.2.5 Tuple 接口 268 
7.2.6 Array 运用实例 268 
7.3 Vector 270 
7.3.1 Vector 的能力 270 
7.3.2 Vector 的操作 273 
7.3.3 将 Vector 当作 C-Style Array 使用 278 
7.3.4 异常处理( Exception Handling ) 278 
7.3.5 Vector 使用实例 279 
7.3.6 Class vector<bool> 281 
7.4 Deque 283 
7.4.1 Deque 的能力 284 
7.4.2 Deque 的操作函数 284 
7.4.3 Exception Handling 288 
7.4.4 Deque 运用实例 288 
7.5 List 290 
7.5.1 List 的能力 290 
7.5.2 List 的操作 291 
7.5.3 异常处理( Exception Handling ) 296 
7.5.4 List 运用实例 298 
7.6 Forward List 300 
7.6.1 Forward List 的能力 300 
7.6.2 Forward List 的操作 302 
7.6.3 异常处理( Exception Handling ) 311 
7.6.4 Forward List 运用实例 312 
7.7 Set 和 Multiset 314 
7.7.1 Set 和 Multiset 的能力 315 
7.7.2 Set and Multiset 的操作函数 316 
7.7.3 异常处理( Exception Handling ) 325 
7.7.4 Set 和 Multiset 运用实例 325 
7.7.5 运行期指定排序准则 328 
7.8 Map 和 Multimap 331 
7.8.1 Map 和 Multimap 的能力 332 
7.8.2 Map 和 Multimap 的操作函数 333 
7.8.3 将 Map 视为关联式数组( Associative Array ) 343 
7.8.4 异常处理( Exception Handling ) 345 
7.8.5 Map 和 Multimap 运用实例 345 
7.8.6 综合实例:运用 Map、 String 并于运行期指定排序准则 351 
7.9 无序容器( Unordered Container ) 355 
7.9.1 Unordered 容器的能力 357 
7.9.2 创建和控制 Unordered 容器 359 
7.9.3 Unordered 容器的其他操作 367 
7.9.4 Bucket 接口 374 
7.9.5 使用 Unordered Map 作为 Associative Array 374 
7.9.6 异常处理( Exception Handling ) 375 
7.9.7 Unordered 容器的运用实例 375 
7.10 其他 STL 容器 385 
7.10.1 String 作为一种 STL 容器 385 
7.10.2 C-Style Array 作为一种 STL 容器 386 
7.11 实现 Reference 语义 388 
7.12 各种容器的使用时机 392 
8 细探 STL 容器成员 397 
8.1 容器内的类型 397 
8.2 创建、复制和销毁( Create, Copy, and Destroy ) 400 
8.3 非更易型操作( Nonmodifying Operation ) 403 
8.3.1 大小相关操作( Size Operation ) 403 
8.3.2 元素比较( Comparison Operation ) 404 
8.3.3 Associative 和 Unordered 容器特有的非更易型操作 404 
8.4 赋值( Assignment ) 406 
8.5 元素直接访问( Direct Element Access ) 408 
8.6 “产出迭代器”之各项操作 410 
8.7 安插和移除( Inserting and Removing )元素 411 
8.7.1 安插单一元素( Inserting Single Element ) 411 
8.7.2 安插多重元素( Inserting Multiple Elements ) 416 
8.7.3 移除元素( Removing Element ) 417 
8.7.4 重设大小( Resizing ) 420 
8.8 List 和 Forward List 的特殊成员函数 420 
8.8.1 特殊成员函数(针对 List 和 Forward List ) 420 
8.8.2 特殊成员函数(只针对 Forward List ) 423 
8.9 容器的策略接口( Policy Interface ) 427 
8.9.1 非更易型策略函数( Nonmodifying Policy Function ) 427 
8.9.2 更易型策略函数( Modifying Policy Function ) 428 
8.9.3 Unordered 容器的 Bucket 相关接口 429 
8.10 对分配器( Allocator )的支持 430 
8.10.1 基本的分配器成员( Fundamental Allocator Member ) 430 
8.10.2 带有“可选之分配器参数”的构造函数 430 
9 STL 迭代器 433 
9.1 迭代器头文件9



内容摘要

本书是全球 C 经典权威参考书籍时隔 12 年,基于 C 11 标准的全新重大升级。标准库提供了一组公共类和接口,极大地拓展了 C 语言核心功能。《C 标准库(第2版)》详细讲解了每一标准库组件,包括其设计目的和方法、复杂概念的剖析、实用而高效的编程细节、存在的陷阱、重要的类和函数,又辅以大量用 C 11 标准实现的实用代码范例。除覆盖全新组件、特性外,本书一如前版,重点着眼于标准模板库(STL),涉及容器、迭代器、函数对象以及 STL 算法。此外,本书同样关注 lambda 表达式、基于区间的for循环、move语义及可变参数模板等标准库中的新式 C 编程风格及其影响。



主编推荐

尼古拉·约祖蒂斯,独立技术顾问,曾为电信、交通、金融和制造业设计过大中型软件系统。他还是C 标准委员会工作组早期成员,并因撰写的权威C 图书而享有盛名。除1999年出版的本书第1版(享誉全球的C 畅销图书)外,他还是《C Templates: The Complete Guide》和《SOA实践指南:分布式系统设计的艺术》的作者。
侯捷,海峡两岸著名的电脑技术自由作家,对于技术的钻研和发表,有独特的品性与坚持。作品涵盖著、译、评三方面,散见于各种刊特、媒体、网站论坛,深受读者喜爱和尊敬。



媒体评论

C 标准库提供了一组公共类和接口,极大地拓展了C 语言核心功能。然而,C 标准库并非不言自明。为了充分利用其组件,受益于其强大威力,真正能够满足你学习需要的参考资料绝不能仅仅列出那些类及其函数。

《C 标准库(第2版)》对现已并入新版ANSI/ISO C  语言标准(C 11)的标准库做了描述。本书对于每个标准库组件都提供了综合的文档,包括:关于其设计目的和设计方法的概览;对于复杂概念的清晰解读;为了有效利用所需的实用编程细节;存在的一些陷阱;实际运用中重要的类和函数的确切签名和定义;以及大量实用代码范例。本书尤其着眼于标准模板库(STL),介绍了容器、迭代器、函数对象以及STL算法。
 
本书还介绍了标准库中的新式C 编程风格及其影响。其中包括lambda表达式、基于区间的for循环、move语义以及可变参数模板



—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP