C++程序设计语言(第4部分:标准库)(原书第4版)pdf

图书网 2018年8月24日14:04:1244.3K

C++程序设计语言(第4部分:标准库)(原书第4版) 内容简介

《C++程序设计语言》(原书第4版)是C++领域经典的参考书,介绍了C++11的各项新特性和新功能。全书共分四部分。部分(第1~5章)是引言,包括C++的背景知识,C++语言及其标准库的简要介绍;第二部分(第6~15章)介绍C++的内置类型和基本特性,以及如何用它们构造程序;第三部分(第16~29章)介绍C++的抽象机制及如何用这些机制编写面向对象程序和泛型程序;第四部分(第30~44章)概述标准库并讨论一些兼容性问题。由于篇幅问题,原书中文版分两册出版,分别对应原书的至三部分和第四部分。这一册为第四部分。

C++程序设计语言(第4部分:标准库)(原书第4版) 目录

第四部分 标准库

第30章 标准库概览

30.1 引言

30.1.1 标准库设施

30.1.2 设计约束

30.1.3 描述风格

30.2 头文件

30.3 语言支持

30.3.1 initializer_list支持

30.3.2 范围for支持

30.4 错误处理

30.4.1 异常

30.4.2 断言

30.4.3 system_error

30.5 建议

第31章 STL容器

31.1 引言

31.2 容器概览

31.2.1 容器表示

31.2.2 对元素的要求

31.3 操作概览

31.3.1 成员类型

31.3.2 构造函数、析构函数和赋值操作

31.3.3 大小和容量

31.3.4 迭代器

31.3.5 元素访问

31.3.6 栈操作

31.3.7 列表操作

31.3.8 其他操作

31.4 容器

31.4.1 vector

31.4.2 链表

31.4.3 关联容器

31.5 容器适配器

31.5.1 stack

31.5.2 queue

31.5.3 priority_queue

31.6 建议

第32章 STL算法

32.1 引言

32.2 算法

32.2.1 序列

32.3 策略实参

32.3.1 复杂性

32.4 不修改序列的算法

32.4.1 for_each()

32.4.2 序列谓词

32.4.3 count()

32.4.4 find()

32.4.5 equal()和mismatch()

32.4.6 search()

32.5 修改序列的算法

32.5.1 copy()

32.5.2 unique()

32.5.3 remove()和replace()

32.5.4 rotate()、random_shuffle()和partition()

32.5.5 排列

32.5.6 fill()

32.5.7 swap()

32.6 排序和搜索

32.6.1 二分搜索

32.6.2 merge()

32.6.3 集合算法

32.6.4 堆

32.6.5 lexicographical_compare()

32.7 最大值和最小值

32.8 建议

第33章 STL迭代器

33.1 引言

33.1.1 迭代器模型

33.1.2 迭代器类别

33.1.3 迭代器萃取

33.1.4 迭代器操作

33.2 迭代器适配器

33.2.1 反向迭代器

33.2.2 插入迭代器

33.2.3 移动迭代器

33.3 范围访问函数

33.4 函数对象

33.5 函数适配器

33.5.1 bind()

33.5.2 mem_fn()

33.5.3 function

33.6 建议

第34章 内存和资源

34.1 引言

34.2 “拟容器”

34.2.1 array

34.2.2 bitset

34.2.3 vector<bool>

34.2.4 元组

34.3 资源管理指针

34.3.1 unique_ptr

34.3.2 shared_ptr

34.3.3 weak_ptr

34.4 分配器

34.4.1 默认分配器

34.4.2 分配器萃取

34.4.3 指针萃取

34.4.4 限域的分配器

34.5 垃圾收集接口

34.6 未初始化内存

34.6.1 临时缓冲区

34.6.2 raw_storage_iterator

34.7 建议

第35章 工具

35.1 引言

35.2 时间

35.2.1 duration

35.2.2 time_point

35.2.3 时钟

35.2.4 时间萃取

35.3 编译时有理数运算

35.4 类型函数

35.4.1 类型萃取

35.4.2 类型生成器

35.5 其他工具

35.5.1 move()和forward()

35.5.2 swap()

35.5.3 关系运算符

35.5.4 比较和哈希type_info

35.6 建议

第36章 字符串

36.1 引言

36.2 字符分类

36.2.1 分类函数

36.2.2 字符萃取

36.3 字符串

36.3.1 string与C风格字符串

36.3.2 构造函数

36.3.3 基本操作

36.3.4 字符串I/O

36.3.5 数值转换

36.3.6 类STL操作

36.3.7 find系列函数

36.3.8 子串

36.4 建议

第37章 正则表达式

37.1 正则表达式

37.1.1 正则表达式符号表示

37.2 regex

37.2.1 匹配结果

37.2.2 格式化

37.3 正则表达式函数

37.3.1 regex_match()

37.3.2 regex_search()

37.3.3 regex_replace()

37.4 正则表达式迭代器

37.4.1 regex_iterator

37.4.2 regex_token_iterator

37.5 regex_traits

37.6 建议

第38章 I/O流

38.1 引言

38.2 I/O流层次

38.2.1 文件流

38.2.2 字符串流

38.3 错误处理

38.4 I/O操作

38.4.1 输入操作

38.4.2 输出操作

38.4.3 操纵符

38.4.4 流状态

38.4.5 格式化

38.5 流迭代器

38.6 缓冲

38.6.1 输出流和缓冲区

38.6.2 输入流和缓冲区

38.6.3 缓冲区迭代器

38.7 建议

第39章 区域设置

39.1 处理文化差异

39.2 类locale

39.2.1 命名locale

39.2.2 比较string

39.3 类facet

39.3.1 访问locale中的facet

39.3.2 一个简单的用户自定义facet

39.3.3 locale和facet的使用

39.4 标准facet

39.4.1 string比较

39.4.2 数值格式化

39.4.3 货币格式化

39.4.4 日期和时间格式化

39.4.5 字符分类

39.4.6 字符编码转换

39.4.7 消息

39.5 便利接口

39.5.1 字符分类

39.5.2 字符转换

39.5.3 字符串转换

39.5.4 缓冲区转换

39.6 建议

第40章 数值计算

40.1 引言

40.2 数值限制

40.2.1 数值限制宏

40.3 标准数学函数

40.4 复数complex

40.5 数值数组:valarray

40.5.1 构造函数和赋值操作

40.5.2 下标操作

40.5.3 运算

40.5.4 切片

40.5.5 slice_array

40.5.6 推广切片

40.6 推广数值算法

40.6.1 accumulate()

40.6.2 inner_product()

40.6.3 partial_sum()和adjacent_difference()

40.6.4 iota()

40.7 随机数

40.7.1 引擎

40.7.2 随机设备

40.7.3 分布

40.7.4 C风格随机数

40.8 建议

第41章 并发

41.1 引言

41.2 存模型

41.2.1 内存位置

41.2.2 指令重排

41.2.3 内存序

41.2.4 数据竞争

41.3 原子性

41.3.1 atomic类型

41.3.2 标志和栅栏

41.4 volatile

41.5 建议

第42章 线程和任务

42.1 引言

42.2 线程

42.2.1 身份

42.2.2 构造

42.2.3 析构

42.2.4 join()

42.2.5 detach()

42.2.6 名字空间this_thread

42.2.7 杀死thread

42.2.8 thread_local数据

42.3 避免数据竞争

42.3.1 互斥量

42.3.2 多重锁

42.3.3 call_once()

42.3.4 条件变量

42.4 基于任务的并发

42.4.1 future和promise

42.4.2 promise

42.4.3 packaged_task

42.4.4 future

42.4.5 shared_future

42.4.6 async()

42.4.7 一个并行find()示例

42.5 建议

第43章 C标准库

43.1 引言

43.2 文件

43.3 printf()系列函数

43.4 C风格字符串

43.5 内存

43.6 日期和时间

43.7 杂项

43.8 建议

第44章 兼容性

44.1 引言

44.2 C++11扩展

44.2.1 语言特性

44.2.2 标准库组件

44.2.3 弃用特性

44.2.4 应对旧版本C++实现

44.3 C/C++兼容性

44.3.1 C和C++是兄弟

44.3.2 “静默”差异

44.3.3 不兼容C++的C代码

44.3.4 不兼容C的C++代码

44.4 建议

C++程序设计语言(第4部分:标准库)(原书第4版) 精彩文摘

标准库的设计主要由这三方面作用确定,而这三方面也是紧密相关的。例如,对一个专用的程序库而言,可移植性通常是一个重要的设计准则,而链表和映射这种通用容器类型对独立开发的库之间进行便利交互是非常重要的。

从设计角度来说,最后一个作用特别重要,因为它有助于限制标准库的范围以及对标准库组件设置约束。例如,标准库提供了字符串和链表。如果不提供这两种设施的话,独立开发的库之间可能只能用内置类型来交互。但是,标准库并未提供高级线性代数和图形化组件。这些组件显然应用广泛,但独立开发的库之间很少直接利用它们进行交互。

对某个组件而言,除非它是支持这些目标所必需的,否则我们就应将其置于其他库而不是标准库中。将某个组件排除在标准库之外为多个库竞相实现同一个思想打开了大门,这有好的一面也有不好的一面。一旦一个库证明它能广泛适用于不同计算环境和应用领域,它就会成为标准库的候选,正则表达式库(见第37章)就是这样一个例子。

图书网:C++程序设计语言(第4部分:标准库)(原书第4版)pdf

继续阅读

→→→→→→→→→→→→→→→→→→→→查找获取

程序设计

重构 改善既有代码的设计(中文版)pdf

《重构:改善既有代码的设计》(中文版)所提的这些重构准则将帮助你一次一小步地修改你的代码,这就减少了过程中的风险。很快你就会把这些重构准则和其名称加入自己的开发词典中,并且朗朗上口...
程序设计

数据结构 C语言版 第2版pdf

适读人群 :普通高校电子信息大类本科生学习、考研,同时也适合零售和培训。 采用“案例驱动”的编写模式。书中结合实际应用,将各章按照“案例引入——数据结构及其操作——案例分析与实现”...
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

评论:4   其中:访客  4   博主  0
    • beta5
      beta5 9

      正在找这本书,这是个好网站

      • MT
        MT 1

        用心发表评论,然后你会发现你的智商已经被提升高了

        • mebius
          mebius 9

          非常感谢您的分享,这对我很有帮助

          • oorock
            oorock 0

            公平公正,技术造福社会