作品简介

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

作者:

Nicolai M.Josuttis,是一名独立技术顾问,为电信、交通、金融和制造业设计过大中型软件系统。他曾是C++标准委员会库工作小组成员,因其权威著作而在编程领域声名鹊起。除了最为畅销的《C++标准库》(第1版出版于1999年),其著作还包括C++ Templates:The Complete Guide(与David Vandevoorde合著,由Addison-Wesley于2003年出版),以及SOA in Practice:The Art of Distributed System Design(由O’Reilly Media于2007年出版,简体中文版《SOA实践指南——分布式系统设计的艺术》由电子工业出版社于2008年出版)。

译者:

侯捷,计算机技术书籍的作家、译者、书评人,长期活跃于C++技术分享与教学领域。著有《深入浅出MFC》《多型与虚拟》《STL源码剖析》《无责任书评》三卷,译有众多脍炙人口的权威技术书籍,包括Meyers所著的“Effective C++”系列。侯捷兼任教职于元智大学、同济大学、南京大学。

作品目录

  • 内容简介
  • 第2版序言
  • 第2版致谢
  • 第1版序言
  • 第1版致谢
  • 第1章 关于本书
  • 1.1 缘起
  • 1.2 阅读前的必要基础
  • 1.3 本书风格与结构
  • 1.4 如何阅读本书
  • 1.5 目前发展情势
  • 1.6 范例代码及额外信息
  • 1.7 反馈
  • 第2章 C++及标准库简介
  • 2.1 C++Standard的历史
  • 2.2 复杂度与Big-O标记
  • 第3章 语言新特性
  • 3.1 C++11语言新特性
  • 3.2 虽旧犹新的语言特性
  • 第4章 一般概念
  • 4.1 命名空间(Namespace)std
  • 4.2 头文件(Header File)
  • 4.3 差错和异常(Error and Exception)的处理
  • 4.4 Callable Object(可被调用的对象)
  • 4.5 并发与多线程
  • 4.6 分配器(Allocator)
  • 第5章 通用工具
  • 5.1 Pair和Tuple
  • 5.2 Smart Pointer(智能指针)
  • 5.3 数值的极值(Numeric Limit)
  • 5.4 Type Trait和Type Utility
  • 5.5 辅助函数
  • 5.6 Class ratio<>的编译期分数运算
  • 5.7 Clock和Timer
  • 5.8 头文件<cstddef>、<cstdlib>和<cstring>
  • 第6章 标准模板库
  • 6.1 STL组件(Component)
  • 6.2 容器(Container)
  • 6.3 迭代器(Iterator)
  • 6.4 算法(Algorithm)
  • 6.5 迭代器之适配器(Iterator Adapter)
  • 6.6 用户自定义的泛型函数(User-Defined GenericFunction)
  • 6.7 更易型算法(Manipulating Algorithm)
  • 6.8 以函数作为算法的实参
  • 6.9 使用Lambda
  • 6.10 函数对象(Function Object)
  • 6.11 容器内的元素
  • 6.12 STL内部的错误和异常
  • 6.13 扩展STL
  • 第7章 STL容器
  • 7.1 容器的共通能力和共通操作
  • 7.2 Array
  • 7.3 Vector
  • 7.4 Deque
  • 7.5 List
  • 7.6 Forward List
  • 7.7 Set和Multiset
  • 7.8 Map和Multimap
  • 7.9 无序容器(Unordered Container)
  • 7.10 其他STL容器
  • 7.11 实现Reference语义
  • 7.12 各种容器的使用时机
  • 第8章 细探STL容器成员
  • 8.1 容器内的类型
  • 8.2 创建、复制和销毁(Create,Copy,and Destroy)
  • 8.3 非更易型操作(Nonmodifying Operation)
  • 8.4 赋值(Assignment)
  • 8.5 元素直接访问(Direct Element Access)
  • 8.6 “产出迭代器”之各项操作
  • 8.7 安插和移除(Inserting and Removing)元素
  • 8.8 List和Forward List的特殊成员函数
  • 8.9 容器的策略接口(Policy Interface)
  • 8.10 对分配器(Allocator)的支持
  • 第9章 STL迭代器
  • 9.1 迭代器头文件(Header Files for Iterators)
  • 9.2 迭代器种类(Iterator Category)
  • 9.3 迭代器相关辅助函数
  • 9.4 迭代器适配器(Iterator Adapter)
  • 9.5 Iterator Trait(迭代器特性)
  • 9.6 用户自定义(User-Defined)迭代器
  • 第10章 STL函数对象及Lambda
  • 10.1 Function Object(函数对象)的概念
  • 10.2 预定义的Function Object和Binder
  • 10.3 运用Lambda
  • 第11章 STL算法
  • 11.1 算法头文件(Header File)
  • 11.2 算法概观
  • 11.3 辅助函数
  • 11.4 for_each()算法
  • 11.5 非更易型算法(Nonmodifying Algorithm)
  • 11.6 更易型算法(Modifying Algorithm)
  • 11.7 移除型算法(Removing Algorithm)
  • 11.8 变序型算法(Mutating Algorithm)
  • 11.9 排序算法(Sorting Algorithm)
  • 11.10 已排序区间算法(Sorted-Range Algorithm)
  • 11.11 数值算法(Numeric Algorithm)
  • 第12章 特殊容器
  • 12.1 Stack(堆栈)
  • 12.2 Queue(队列)
  • 12.3 Priority Queue(带优先级的队列)
  • 12.4 细究Container Adapter
  • 12.5 Bitset
  • 第13章 字符串
  • 13.1 String Class的目的
  • 13.2 String Class细节描述
  • 13.3 细究String Class
  • 第14章 正则表达式
  • 14.1 Regex的匹配和查找接口(Match and Search Interface)
  • 14.2 处理“次表达式”(Subexpression)
  • 14.3 Regex Iterator
  • 14.4 Regex Token Iterator
  • 14.5 用于替换的正则表达式
  • 14.6 Regex Flag
  • 14.7 Regex的异常(Exception)
  • 14.8 Regex ECMAScript文法
  • 14.9 其他文法
  • 14.10 细究Basic Regex签名式
  • 第15章 以Stream完成I/O
  • 15.1 I/O Stream的共通基础
  • 15.2 基本Stream Class和其对象
  • 15.3 标准的Stream操作符<<和>>
  • 15.4 Stream的状态(State)
  • 15.5 标准I/O函数
  • 15.6 操控器(Manipulator)
  • 15.7 格式化(Formatting)
  • 15.8 国际化(Internationalization)
  • 15.9 文件访问(File Access)
  • 15.10 为String而设计的Stream Class
  • 15.11 “用户自定义类型”之I/O操作符
  • 15.12 连接Input和Output Stream
  • 15.13 Stream Buffer Class
  • 15.14 关于效能(Performance)
  • 第16章 国际化
  • 16.1 字符编码和字符集
  • 16.2 Locale(地域)概念
  • 16.3 细究Locale
  • 16.4 细究Facet
  • 第17章 数值
  • 17.1 随机数及分布(Random Number and Distribu-tion)
  • 17.2 复数(Complex Number)
  • 17.3 全局数值函数(Global Numeric Function)
  • 17.4 Valarray
  • 第18章 并发
  • 18.1 高级接口:async()和Future
  • 18.2 低层接口:Thread和Promise
  • 18.3 细说启动线程(Starting a Thread)
  • 18.4 线程同步化与Concurrency(并发)问题
  • 18.5 Mutex和Lock
  • 18.6 Condition Variable(条件变量)
  • 18.7 Atomic
  • 第19章 分配器
  • 19.1 以应用程序开发者的角度使用Allocator
  • 19.2 用户自定义的Allocator
  • 19.3 以程序库开发者的角度使用Allocator
  • 参考书目
  • 新闻组及论坛(Newsgroup and Forum)
  • 书籍和网站
展开全部