书刊介绍
《C++标准库(第2版)》内容简介
本书是全球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)
书籍和网站