A Tour of C++ 第二版 - Bjarne Stroustrup
原始文件: /books/c++/A Tour of C++, 2nd Edition.pdf 大小: 12.96 MB 页数: 815页 作者: Bjarne Stroustrup (C++语言创始人) 出版: Pearson, 2018 标准: C++17
核心定位
本书是C++语言创始人的官方入门指南第二版,聚焦C++17标准。与第一版相比,新增C++17新特性覆盖,包括并行算法、文件系统库、std::string_view等。
与第一版关系:
- 第一版(726页): 聚焦C++14/17早期特性
- 第二版(815页): 全面覆盖C++17正式发布标准
全书结构概览
Part 1: The Basics (第1章)
- 程序基础、函数、类型与变量、算术运算
- 作用域与生命周期、常量
- 指针、数组与引用、测试
- 硬件映射
Part 2: User-Defined Types (第2-5章)
第2章 Structures
- 结构和类的基本区别
- 构造函数与初始化列表
第3章 Classes
- 类的基本概念
- 封装与抽象
- 友元函数与友元类
第4章 Unions
- 联合体用法
- std::variant引入(C++17)
第5章 Enumerations
- 枚举类型
- enum class(C++11)
Part 3: Modularity (第6-7章)
第6章 Templates
- 函数模板与类模板
- 模板参数推导(C++11/14)
- Variadic templates(可变参数模板)
- Template compilation model
第7章 Concepts
- C++20概念与约束(C++20特性)
- 泛型编程的高级形式
Part 4: Essential Operations (第8-10章)
第8章 Standard-Library Overview
- vector, string, map等基本容器
- 迭代器模式
- 算法组件
第9章 Strings and Regular Expressions
- std::string操作
- std::string_view(C++17)
- 正则表达式(C++11)
第10章 Input and Output
- 流操作符
- 格式化输出
- 文件流
- std::filesystem(C++17)
Part 5: Containers (第11章)
- vector, list, map, unordered_map
- 容器适配器
- Span(C++20)
Part 6: Algorithms (第12章)
- 迭代器类型
- 谓词与函数对象
- 算法概览
- 并行算法(C++17)
Part 7: Utilities (第13章)
- 资源管理
- 特殊化容器
- 分配器
- 时间处理
- 函数适配器
- 类型函数
Part 8: Numerics (第14章)
- 数学函数
- 数值算法
- 复数
- 随机数生成
- 向量化算术
Part 9: Concurrency (第15章)
- Thread与Task
- 参数传递与返回值
- 数据共享
- 事件等待
- 任务通信
- std::async(C++11)
- std::thread(C++11)
Part 10: History and Compatibility (第16章)
- C++历史演进
- 特性兼容性
- C/C++互操作性
关键特性覆盖
C++11特性
- auto类型推导
- 右值引用与移动语义
- lambda表达式
- std::thread并发
- std::future异步
- 智能指针(std::unique_ptr, std::shared_ptr)
- constexpr常量表达式
C++14特性
- 泛型lambda
- std::make_unique
- 二进制字面量
- 用户定义字面量
C++17特性
- std::optional可选值
- std::variant联合类型
- std::string_view字符串视图
- std::filesystem文件系统
- 并行算法(std::execution::par)
- structured bindings结构化绑定
- if与switch初始化
- constexpr if条件编译
C++20特性
- 概念(Concepts)
- 模块(Modules)
- 协程(Coroutines)
- 范围(Ranges)
- 三向比较运算符(<=>)
阅读建议
适合人群:
- 有经验的程序员快速了解现代C++
- 需要了解C++17新特性的开发者
- C++入门学习者的官方推荐
阅读方法:
- 本书旨在提供概览,非深度教程
- 建议配合实际项目实践
- 可参考配套在线文档和示例代码
与其他C++书籍的关系
系列关系:
- 《The C++ Programming Language, 4th Edition》- 完整参考书(1366页)
- 《C++ Primer Plus》- 系统入门教程(1438页)
- 《Effective Modern C++》- 42条最佳实践(254页)
定位差异:
- 本书最薄(815页),定位”快速概览”
- 适合已有其他语言经验的程序员快速上手
核心代码示例要点
智能指针:
auto p = std::make_unique<Foo>(args); // 替代new/delete并发基础:
std::thread t([]{ /* work */ });
t.join();字符串视图:
std::string_view sv = str; // 零拷贝字符串引用文件系统:
std::filesystem::path p = "dir/file.txt";
if (std::filesystem::exists(p)) { /* ... */ }笔记关联
- A Tour of C++ - Bjarne Stroustrup - 第一版笔记
- The_C++_Programming_Language_4th_Edition - 完整参考书
- C++-Primer-Plus-第六版 - 系统入门教程
- Effective-Modern-C++-中文版-Scott-Meyers - C++11/14最佳实践