出版时间:2008-4 出版社:机械工业出版社 作者:(美国)贝克尔 页数:411 译者:史晓明
Tag标签:无
内容概要
本书是对TR1进行了完整的介绍。全书共22章,包括元组、智能指针、类模板array、无序关系容器、调用包装器基础、mem_fn函数模板、reference_wrapper类模板、类模板function、函数模板bind、类型特性、数值函数、随机数生成器、头文件、正则表达式对象、查找、格式化和文件替换、正则表达式的定制以及C语言兼容等内容。全书不仅对枯燥的标准文本给出了浅显易懂的解释,还提供了很多示例和练习来帮助我们理解。每个C++程序员都可以从本书中获益匪浅。
作者简介
Pete Becker,是一位独立顾问,擅长于库的设计和实现。他曾经在Dinkumware,Ltd.工作,在那里他不仅为TR1库的各个部分编写了技术文档,还参与完成了对它们的实现。Pete Becker从一开始就是ISO C++标准委员会的成员,他现在是C++Ox的项目编辑。
书籍目录
译者序前言第一部分 基本工具 第1章 元组 1.1 头文件的摘要 1.2 tuple类模板 1.3 像tuple一样对std::pair进行存取 1.4 练习 第2章 智能指针 2.1 定义 2.2 关于示例 2.3 头文件的摘要 2.4 shared_ptr类模板 2.5 类模板weak_ptr 2.6 类模板enable_shared_from_this 2.7 bad_weak_ptr类 2.8 转换 2.9 受控资源的析构 2.10 异常 2.11 多线程 2.12 练习第二部分 容器 第3章 基础知识 3.1 STL部件 3.2 容器 3.3 进一步阅读 3.4 练习 第4章 类模板array 4.1 类模板array概述 4.2 信息获取 4.3 访问 4.4 修改 4.5 迭代 4.6 内嵌类型名称 4.7 比较 4.8 与tuple类似的接口 4.9 练习 第5章 无序关系容器 5.1 对散列表进行标准化 5.2 散列表 5.3 关系容器和无序容器 5.4 对无序容器的要求 5.5 头文件和 5.6 类模板hash 5.7 无序容器的实例化 5.8 构造函数 5.9 容器操作 5.10 负载因子和重散列 5.11 优化 5.12 进一步阅读 5.13 练习第三部分 调用包装器 第6章 调用包装器基础 6.1 术语 6.2 对可调用类型的要求 6.3 头文件的摘要 6.4 类模板result_of 6.5 与现存的函数对象进行交互 6.6 练习 第7章 mem_fn函数模板 第8章 reference_wrapper类模板 8.1 创建 8.2 内嵌类型 8.3 调用 8.4 练习 第9章 类模板function 9.1 构造一个function对象 9.2 访问 9.3 修改 9.4 比较 9.5 内嵌类型 9.6 调用 9.7 目标对象 9.8 练习 第10章 函数模板bind 10.1 占位符 10.2 unspecified bind(…) 10.3 对bind进行扩展 10.4 练习第四部分 类型特性 第11章 类型特性概述 11.1 头文件 11.2 辅助类型 11.3 基本类型 11.4 复合类型 11.5 类型属性 11.6 类型关系 11.7 类型变换 11.8 对齐 11.9 进一步阅读 11.10 练习第五部分 数值 第12章 数值函数 12.1 关于示例 12.2 浮点值的表示 12.3 管理浮点环境 12.4 无穷大、非规范数、NaN和比较 12.5 定义域和值域错误 12.6 新的重载规则 12.7 基本数学函数 12.8 数学特殊函数 12.9 复函数 12.10 进一步阅读 12.11 练习 第13章 随机数生成器 13.1 随机数引擎 13.2 TR1中的引擎模板 13.3 TR1库中的random_device类 13.4 TR1库中的预定义引擎 13.5 随机数分布 13.6 离散分布 13.7 连续分布 13.8 类模板variate_generator 13.9 进一步阅读 13.10 练习第六部分 正则表达式 第14章 头文件 第15章 正则表达式语法 15.1 正则表达式结构 15.2 语法特性 15.3 正则表达式细节 15.4 关于练习 15.5 练习 第16章 正则表达式对象 16.1 定义 16.2 头文件的部分摘要 16.3 语法选项 16.4 basic_regex类模板 16.5 预定义的basic_regex类型 16.6 错误处理 16.7 练习 第17章 查找 17.1 头文件的部分摘要 17.2 完整匹配 17.3 查找 17.4 查找选项 17.5 练习 第18章 查找结果 18.1 头文件的部分摘要 18.2 sub_match类模板 18.3 预定义的sub_match类型 18.4 类模板match_results 18.5 练习 第19章 重复查找 19.1 暴力查找 19.2 regex_iterator类模板 19.3 regex_token_iterator类模板 19.4 练习 第20章 格式化和文本替换 20.1 格式化选项 20.2 格式化文本 20.3 文本替换 20.4 练习 第21章 正则表达式的定制 21.1 字符特性 21.2 locale 21.3 字符匹配 21.4 归并 21.5 字符类别 21.6 regex_traits类模板第七部分 C语言兼容 第22章 C语言兼容 22.1 整数类型 22.2 64位整数类型 22.3 固定大小的整数类型 22.4 文本转换 22.5 格式化说明符 22.6 格式化I/O 22.7 字符分类 22.8 布尔类型 22.9 练习附录 附录A 头文件 附录B 辅助头文件 附录C 多线程参考文献
章节摘录
第2章 智能指针 自动对象(auto object)仅当定义它的函数执行时才会存在,而全局对象在程序运行时一直存在着。几乎每一个具有一定规模(nontrivial)的应用程序都会对某些生命周期介于自动对象和全局对象之间的资源进行控制。具有这类生命周期的资源中最常见的就是内存了,有经验的程序员会很清楚没有对动态分配的内存进行正确的处理会导致怎样的问题。TR1库为此提供了一对模板,它们有助于确保资源在需要时始终存在,并且在不再需要时会被正确释放。这两个模板是shared_ptr(将在第2.4节中讨论)和weak_ptr(将在第2.5节中讨论)
编辑推荐
“TR1的大小差不多是C++标准库的2倍。它加入了很多新的功能,甚至是全新类型的库部件。譬如说,在某些TR1类中,有些内嵌类型的存在与否可能会依赖于其模板参数。对于那些仅对C++标准库有经验的程序员来说,这是奇。隆而陌生的。本书非常完整(它覆盖了所有的TR1功能),它不仅比TR1本身更容易理解,而且在技术上也是正确的。” ——Matthew Austern, Google软件工程师 “TR1可以帮助C++程序员变得比过去更为多产。Pete Becker编写的这本书是对这些组件的终极参考手册:它们是什么、它们是怎么工作的以及它们可以用在哪里。对于那些想要使用这些标准化组件来提高他们的生产率和代码质量的人来说,应该把这本书放在其书架上。”——John Maddock,顾问/程序员 当前的C++标准库使用常用的类和函数对C++语言核心进行扩展。在最近几年里,为了解决C++标准库的局限,作者开发了一系列组件来对C++语言进行更进一步的扩展。这些扩展编入一个全面的技术报告中(TR1),并且其中的大部分已经被C++标准的下一个版本通过了。 本书中,Pete Becker不仅对TR1库中的每一个组件都进行了详细的描写,还解释了基本工具、模板、调用包装器、类型特性、数值、正则表达式以及C语言兼容方面的新功能。通过自己在实现这些组件中所积累的经验,Pete Becker不仅阐明了它们的价值并在需要时对标准加以澄清,还提供了通过测试的完整代码。 本书大部分章节都包含了不同难度的练习来帮助程序员得到这些新组件的实践经验。这些练习的答案以及所有的代码示例都可以在网上找到。附录中不仅为TR1库所包含或扩展的头文件提供了摘要,还介绍了应该怎样在多线程应用程序中安全地使用这些组件。 该书可供各大专院校作为教材使用,也可供从事相关工作的人员作为参考用书使用。
图书封面
图书标签Tags
无
评论、评分、阅读与下载