现代C++编程实战--极客时间课程推荐/优惠
版权声明
本站非极客时间官网,与官方无任何关系。我们不提供课程下载或详细内容,仅作为课程分享和推荐平台。我们鼓励大家支持正版,尊重创作者的劳动成果,这样不仅能帮助创作者持续产出优质内容,也能让自己获得更好的学习体验。请通过官方渠道购买和学习课程,感谢您的理解与支持。
课程详情
你将获得:
- 掌握C++语言现代特性
- 领会C++抽象表达精髓
- 实践C++开发惯用模式
- 征服复杂性解决实际问题
课程介绍
C++,一门声名在外的老牌编程语言。
作为一门多范式的通用编程语言,它适用的领域非常广泛,小到嵌入式,大到分布式服务器,到处可以见到 C++ 的身影。从性能上看,C++ 表现也很出色,虽然完成同样的功能,C++ 需要的代码行数可能是 Python 的三倍,而性能则可以轻松达到 Python 的十倍以上。此外,其发展前景也非常广阔,作为未来趋势的人工智能和机器学习,外衣是Python(模型描述),但是内核还是 C++(高性能运算) 。
但你也可能听说过 C++ 的另一种评价——复杂、难学、难用。上手和熟练掌握难,应用上容易出错,被误用的可能性也很大。还有,C++ 继发布语言标准的第二版——C++11——之后,它以每三年一版的频度发布着新的语言标准,每一版都在基本保留向后兼容性的同时,提供改进和新功能。
难且迭代迅速,相信这两座大山让很多 C++ 程序员都望而生畏。可事实真的如此吗?你有没有深入思考过到底什么样的学习方式才最适合 C++?面对那么多的新功能、单词和语法规则,要记吗?哪些才是重点?记住了又怎么用呢?
针对以上这些问题,吴咏炜将结合自己过去 20 多年累积的工作经验,节选现代 C++ 的重要新特性,带你进入编程实战,手把手带你重新理解 C++。相信通过本专栏的学习,你能把 C++ 当作一种实用的语言,能用它写出抽象但自然、可维护的高性能代码,并用它去更好地解决项目中的实际问题。
具体内容上,专栏分为以下四部分:
第一部分——基础篇,讲解现代 C++ 中的最重要特性,帮助你理解基础概念;
第二部分——提高篇,讲述几个独立的专题,帮助你掌握 C++ 中的一些高级技巧;
第三部分——实战篇,讨论实际的工具和第三方库,帮助你打磨手头的兵器库;
第四部分——未来篇,讨论 C++20 中即将引入的一些新特性,帮助你培养前瞻性。
学习路径图
特别说明:
1.专栏中的内容大部分时间都会使用不超过 C++17 标准的语言特性,最后在讲到 C++20 新特性时,某些实验功能可能会要求某个特定的编译器,更多细节请参见 [课前必读]。
2.专栏涉及到的都是较短的代码,因此不需要工程文件也可以编译运行。这里建议你熟悉编译器的命令行,来快速编译代码。
3.为了方便你编译,可编译的完整示例代码已经放在 GitHub 上。如果你使用 CMake,还可以用它来生成你使用的平台所需的工程文件。
4.专栏中案例+代码偏多,不建议仅通过音频学习,“文稿+音频+动手实践”为最佳学习方式。
课程目录
课前必读
- 开篇词 | C++这么难,为什么我们还要用C++?
- 课前必读 | 有关术语发音及环境要求
基础篇
- 01 | 堆、栈、RAII:C++里该如何管理资源?
- 02 | 自己动手,实现C++的智能指针
- 03 | 右值和移动究竟解决了什么问题?
- 04 | 容器汇编 I:比较简单的若干容器
- 05 | 容器汇编 II:需要函数对象的容器
- 06 | 异常:用还是不用,这是个问题
- 07 | 迭代器和好用的新for循环
- 08 | 易用性改进 I:自动类型推断和初始化
- 09 | 易用性改进 II:字面量、静态断言和成员函数说明符
提高篇
- 10 | 到底应不应该返回对象?
- 11 | Unicode:进入多文字支持的世界
- 12 | 编译期多态:泛型编程和模板入门
- 13 | 编译期能做些什么?一个完整的计算世界
- 14 | SFINAE:不是错误的替换失败是怎么回事?
- 15 | constexpr:一个常态的世界
- 16 | 函数对象和lambda:进入函数式编程
- 17 | 函数式编程:一种越来越流行的编程范式
- 18 | 应用可变模板和tuple的编译期技巧
- 19 | thread和future:领略异步中的未来
- 20 | 内存模型和atomic:理解并发的复杂性
实战篇
- 21 | 工具漫谈:编译、格式化、代码检查、排错各显身手
- 22 | 处理数据类型变化和错误:optional、variant、expected和Herbception
- 23 | 数字计算:介绍线性代数和数值计算库
- 24 | Boost:你需要的“瑞士军刀”
- 25 | 两个单元测试库:C++里如何进行单元测试?
- 26 | Easylogging++和spdlog:两个好用的日志库
- 27 | C++ REST SDK:使用现代C++开发网络应用
新年特别策划
- 新春寄语 | 35年码龄程序员:人生漫长,走点弯路在所难免
- 新春福利 | C++好书荐读
未来篇
- 28 | Concepts:如何对模板进行约束?
- 29 | Ranges:无迭代器的迭代和更方便的组合
- 30 | Coroutines:协作式的交叉调度执行
加餐
- 加餐 | 部分课后思考题答案合集
结束语
- 结束语 | 终点已达,行程还要继续
- 结课问卷获奖用户名单
- 第二季回归|拿下Vim,让编程效率神器为我所用
期末测试
- 期末测试 | 对于现代C++,你掌握了多少呢?
增补篇
- 旅程再启|那些关于C++的新认知
- 31|new和delete背后:分配函数和释放函数
- 32|容器里的内存管理:分配器
- 33|性能测试的正确姿势:性能、时间和优化
- 34|快速分配和释放内存:内存池
- 35 | 发现和识别内存问题:内存调试实践
- 36|访问对象的代理对象:视图类型
- 37|参数传递的正确方法和模板的二进制膨胀
- 38 | 折叠表达式:高效的编译期展开
- 39 | 如何在编译期玩转字符串?
- 40 | 如何在编译期遍历数据?
- 41|对象传参和返回的最佳实践