现代C++速成:C++11/14/17/20精华指南
需积分: 3 36 浏览量
更新于2024-07-06
收藏 2.41MB PDF 举报
"现代 C++ 教程:高速上手 C++11/14/17/20(2021 年 3 月 15 日) - 欧长坤著,采用CC BY-NC-SA 4.0许可协议"
本教程旨在帮助读者快速掌握现代C++编程,特别关注C++11、C++14、C++17和C++20新引入的特性。作者欧长坤强调了这一版教程的内容可能已过期,建议访问相关网站和GitHub仓库获取最新资料。
教程主要分为多个章节,涵盖了C++语言的重要升级和改进:
1. **迈向现代C++**:
- 弃用的特性:介绍了一些在新标准中不再推荐使用的旧特性。
- C的兼容性:讨论了C++与C语言之间的联系和差异。
2. **语言可用性的强化**:
- 常量与`nullptr`:介绍了新的空指针常量`nullptr`,以及`constexpr`关键字,用于指定可以在编译时计算的函数或变量。
- 变量初始化:包括在`if`和`switch`语句中声明变量、初始化列表以及结构化绑定等新特性。
- 类型推导:讲解了`auto`和`decltype`如何简化类型推断,以及尾返回类型推导和`decltype(auto)`的应用。
- 控制流:包含`ifconstexpr`(静态断言)和区间`for`循环的改进。
- 模板:涉及外部模板、尖括号语法、类型别名模板、默认模板参数、变长参数模板、折叠表达式和非类型模板参数推导。
3. **语言运行期的强化**:
- Lambda表达式:详细介绍了lambda表达式的使用,包括基础用法和泛型Lambda。
- 函数对象包装器:讲解了`std::function`和`std::bind`以及占位符`std::placeholder`的应用。
- 右值引用:解释了左值、右值、纯右值、将亡值的概念,并讨论了右值引用如何支持移动语义。
- 完美转发:阐述了如何有效地传递参数,以保持其原始性质。
4. **容器**:
- 线性容器:包括`std::array`的使用,以及与`std::forward_list`相关的概念。
- 无序容器:这部分可能会涵盖如`std::unordered_map`和`std::unordered_set`等无序容器的使用。
每一章末尾都提供了习题,帮助读者巩固所学知识。教程的目的是让读者能够充分利用C++的新特性,提升编程效率和代码质量。通过学习,读者将能更好地理解和应用现代C++,以适应不断发展的编程环境。
2021-10-01 上传
2021-10-25 上传
2024-11-08 上传
2023-04-01 上传
2018-06-22 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
wincsb
- 粉丝: 1
- 资源: 21
最新资源
- upptime-test:Kar Karan Kale的正常运行时间监控器和状态页面,由@upptime提供支持
- Practica:数据清洗与分析
- 渣浆泵过流部件的生产实践.rar
- Newsletter-Signup-Web-App:在Node中使用MailChimp API服务制作的Newsletter注册Web应用程序
- 使用SpringBoot + SpringCloudAlibaba(正在重构中)搭建的金融类微服务项目-万信金融. .zip
- 西安交大电力系统分析视频教程第27讲
- MDIN3xx_mainAPI_v0.2_26Aug2011.zip
- hibernate,java项目源码,java中如何查看方法的
- 七段图像创建:非常灵活的功能,您可以创建任意大小的七段图像。-matlab开发
- cv
- OnePortMeas:适用于一端口RF设备表征的Python App
- java,java源码网站,javaunsafe
- 网址状态
- 网络时间同步工具 NetTime 3.20 Alpha 3.zip
- css-grid-course
- Python库 | clay-3.2.tar.gz