![]()
内容推荐 本书一共19章,以C++20为标准,讲述了现代C++所提供的编程特性。 有其他语言编程经验的读者可以从本书中快速了解C++所具备的功能,从而获得对现代C十的更全面认知,以便更好地了解现代C++语言已经发展到的程度。资深程序员可以从本书作者的整体行文风格中感受到他在设计C++特性时的一些考量及侧重点,了解C++这门语言在历史上曾经历过的变迁,以及一部分特性为什么会是今天这个样子。 所以,本书适合的读者:有其他语言编程经验,想要了解C++语言的读者;有传统C++编程经验,想要了解现代C++语言特性的读者;有较丰富编程经验且想了解“C++之父”在C++设计过程中的一些设计细节与思路的读者。 作者简介 本贾尼·斯特劳斯特鲁普(Bjarne Stroustrup),C++语言的设计者和最初实现者,C++语言ISO标准化工作的积极参与者,同时也是《C++程序设计语言》和《C++程序设计原理与实践》的作者。他是英国剑桥大学计算机科学专业博士,1979年加入美国新泽西贝尔实验室,从成立到2002年一直担任贝尔实验室大规模程序设计研究部门的负责人。2002年至2014年,Bjarne被评为德州农工大学工程学院计算机科学首席教授,哥伦比亚大学计算机科学系客座教授,德州农工大学计算机科学系杰出研究教授。多年来,他为剑桥大学、哥伦比亚大学和普林斯顿大学等知名学府的计算机科学教学事业倾注了大量的热情和精力。商业领域方面,Bjarne是RollApp科技公司的资深顾问。2014年,Bjame加入摩根士丹利纽约总部,任职技术与数据部门的董事总经理。他是美国国家工程院院士、IEEE会士和ACM会士,研究兴趣包括分布式系统、设计、程序设计技术、软件开发工具和程序设计语言。 目录 第1章 基础 1.1 引言 1.2 程序 1.2.1 Hello, World! 1.3 函数 1.4 类型、变量与运算 1.4.1 算术运算 1.4.2 初始化 1.5 作用域和生命周期 1.6 常量 1.7 指针、数组和引用 1.7.1 空指针 1.8 检验 1.9 映射到硬件 1.9.1 赋值 1.9.2 初始化 1.10 建议 第2章 用户自定义类型 2.1 引言 2.2 结构 2.3 类 2.4 枚举 2.5 联合 2.6 建议 第3章 模块化 3.1 引言 3.2 分离编译 3.2.1 头文件 3.2.2 模块 3.3 命名空间 3.4 函数参数与返回值 3.4.1 参数传递 3.4.2 返回值 3.4.3 返回类型推导 3.4.4 返回类型后置 3.4.5 结构化绑定 3.5 建议 第4章 错误处理 4.1 引言 4.2 异常 4.3 约束条件 4.4 错误处理的其他替代方式 4.5 断言 4.5.1 assert() 4.5.2 static_assert 4.5.3 noexcept 4.6 建议 第5章 类 5.1 引言 5.1.1 类的概述 5.2 具体类型 5.2.1 一种算术类型 5.2.2 容器 5.2.3 容器的初始化 5.3 抽象类型 5.4 虚函数 5.5 类层次结构 5.5.1 类层次结构的益处 5.5.2 类层次结构导航 5.5.3 避免资源泄漏 5.6 建议 第6章 基本操作 6.1 引言 6.1.1 基本操作 6.1.2 转换 6.1.3 成员初始值设定项 6.2 拷贝和移动 6.2.1 拷贝容器 6.2.2 移动容器 6.3 资源管理 6.4 操作符重载 6.5 常规操作 6.5.1 比较(关系操作符) 6.5.2 容器操作 6.5.3 迭代器及智能指针 6.5.4 输入与输出操作 6.5.5 swap() 6.5.6 hash<> 6.6 用户自定义字面量 6.7 建议 第7章 模板 7.1 引言 7.2 参数化类型 7.2.1 受限模板参数 7.2.2 模板值参数 7.2.3 模板参数推导 7.3 参数化操作 7.3.1 模板函数 7.3.2 函数对象 7.3.3 匿名函数表达式 7.4 模板机制 7.4.1 模板变量 7.4.2 别名 7.4.3 编译时if 7.5 建议 第8章 概念和泛型编程 8.1 引言 8.2 概念 8.2.1 概念的运用 8.2.2 基于概念的重载 8.2.3 有效代码 8.2.4 定义概念 8.2.5 概念与auto 8.2.6 类型与概念 8.3 泛型编程 8.3.1 概念的使用 8.3.2 使用模板实现抽象 8.4 可变参数模板 8.4.1 折叠表达式 8.4.2 *美转发参数 8.5 模板编译模型 8.6 建议 第9章 标准库 9.1 引言 9.2 标准库组件 9.3 标准库的组织 9.3.1 命名空间 9.3.2 ranges命名空间 9.3.3 模块 9.3.4 头文件 9.4 建议 第10章 字符串和正则表达式 10.1 引言 10.2 字符串 10.2.1 string的实现 10.3 字符串视图 10.4 正则表达式 10.4.1 搜索 10.4.2 正则表达式的符号表示 10.4.3 迭代器 10.5 建议 第11章 输入和输出 11.1 引言 11.2 输出 11.3 输入 11.4 I/O状态 11.5 用户自定义类型的I/O 11.6 输出格式化 11.6.1 流式格式化 11.6.2 printf()风格的格式化 11.7 流 11.7.1 标准流 11.7.2 文件流 11.7.3 字符串流 11.7.4 内存流 11.7.5 同步流 11.8 C 风格的I/O 11.9 文件系统 11.9.1 路径 11.9.2 文件和目录 11.10 建议 第12章 容器 12.1 引言 12.2 vector 12.2.1 元素 12.2.2 范围检查 12.3 list 12.4 forward_list 12.5 map 12.6 unordered_map 12.7 分配器 12.8 容器概述 12.9 建议 第13章 算法 13.1 引言 13.2 使用迭代器 13.3 迭代器类型 13.3.1 流迭代器 13.4 使用谓词 13.5 标准库算法概览 13.6 并行算法 13.7 建议 第14章 范围 14.1 引言 14.2 视图 14.3 生成器 14.4 管道 14.5 概念概述 14.5.1 类型概念 14.5.2 迭代器概念 14.5.3 范围概念 14.6 建议 第15章 指针和容器 15.1 引言 15.2 指针类型 15.2.1 unique_ptr及shared_ptr 15.2.2 span 15.3 容器 15.3.1 array 15.3.2 bitset 15.3.3 pair 15.3.4 tuple 15.4 可变类型容器 15.4.1 variant 15.4.2 optional 15.4.3 any 15.5 建议 第16章 实用工具 16.1 引言 16.2 时间 16.2.1 时钟 16.2.2 日历 16.2.3 时区 16.3 函数适配 16.3.1 匿名函数作为适配器 16.3.2 mem_fn() 16.3.3 function 16.4 类型函数 16.4.1 类型谓词 |