Logo
☆☆☆☆☆
0.0
Intermediate
20h

C++ 模板元编程

模板彻底改变了C++编程的世界。本课程深入讲解模板,揭示其底层机制、应用场景以及最新发展。无论你是初学者还是高级C++开发者,掌握模板并理解其广泛的应用都至关重要。 课程从模板基础模块开始,为后续的高级内容做好铺垫。你将学习模板的基本原理、可变参数模板以及高级模板概念,并探索常见的设计模式与编程技巧。此外,你还将深入研究范围(ranges)、算法及范围库,帮助你紧跟现代C++的最佳实践。 完成本课程后,你将全面掌握C++模板技术,能够编写更高效、更灵活的代码。课程不仅注重理论知识,更强调实际应用,通过测验和挑战任务确保你真正学以致用。全面提升你的C++编程能力,为在软件开发领域持续成长打下坚实基础。

12 Lessons
Included in Subscription Plan
Personalized Learning
Powered by AI
C++ 模板元编程
模板彻底改变了C++编程的世界。本课程深入讲解模板,揭示其底层机制、应用场景以及最新发展。无论你是初学者还是高级C++开发者,掌握模板并理解其广泛的应用都至关重要。 课程从模板基础模块开始,为后续的高级内容做好铺垫。你将学习模板的基本原理、可变参数模板以及高级模板概念,并探索常见的设计模式与编程技...

WHAT YOU'LL LEARN

深入理解C++模板及其在代码抽象中的作用

Content

12 Lessons • 0 Quizzes • 0 Challenges

课程简介
  1. 1

    入门

  2. 2

    本课程涵盖的内容

  3. 3

    课程前提条件与约定

模板基础
  1. 1

    模板简介

  2. 2

    理解模板的必要性

  3. 3

    编写我们的第一个模板

  4. 4

    理解模板术语

  5. 5

    模板的发展简史

  6. 6

    模板的优缺点

  7. 7

    模板基础概述

  8. 8

    测验:模板基础

  9. 9

    挑战:查找数组的和

  10. 10

    解决方案:查找数组的和

模板基础
  1. 1

    模板基础入门

  2. 2

    定义函数模板

  3. 3

    定义类模板

  4. 4

    定义成员函数模板

  5. 5

    理解模板参数

  6. 6

    理解默认模板参数

  7. 7

    理解模板实例化

  8. 8

    理解显式特化

  9. 9

    理解部分特化

  10. 10

    定义变量模板

  11. 11

    定义别名模板

  12. 12

    探索通用lambda表达式与lambda模板

  13. 13

    模板基础概要

  14. 14

    测验:模板基础

  15. 15

    挑战:配对模板

  16. 16

    解决方案:配对模板

可变参数模板
  1. 1

    可变参数模板简介

  2. 2

    理解可变参数模板的必要性

  3. 3

    可变参数函数模板

  4. 4

    参数包

  5. 5

    理解参数包展开

  6. 6

    可变参数类模板

  7. 7

    折叠表达式

  8. 8

    可变参数别名模板

  9. 9

    可变参数变量模板

  10. 10

    可变参数模板概述

  11. 11

    测验:可变参数模板

  12. 12

    挑战:连接字符串

  13. 13

    解决方案:连接字符串

高级模板概念
  1. 1

    高级模板概念简介

  2. 2

    理解名称绑定与依赖名称

  3. 3

    探索模板递归

  4. 4

    函数模板参数推导

  5. 5

    类模板参数推导

  6. 6

    转发引用

  7. 7

    decltype 说明符

  8. 8

    std::declval 类型操作符

  9. 9

    理解模板中的友谊关系

  10. 10

    高级模板概念概述

  11. 11

    测验:高级模板概念

  12. 12

    挑战:动态元组创建

  13. 13

    解决方案:动态元组创建

类型特性与条件编译
  1. 1

    类型特性与条件编译入门

  2. 2

    理解与定义类型特性

  3. 3

    探索SFINAE及其作用

  4. 4

    通过 enable_if 类型特征实现 SFINAE

  5. 5

    使用 constexpr if

  6. 6

    探索标准类型特性:第一部分

  7. 7

    探索标准类型特性:第二部分

  8. 8

    查看使用类型特征的实际示例

  9. 9

    类型特性与条件编译概述

  10. 10

    测验:类型特性与条件编译

  11. 11

    挑战:基于类型的加法与类型信息

  12. 12

    解决方案:基于类型的加法与类型信息

概念与约束
  1. 1

    概念与约束简介

  2. 2

    理解概念的必要性

  3. 3

    定义概念

  4. 4

    探索 requires 表达式

  5. 5

    组合约束

  6. 6

    带约束的模板排序

  7. 7

    限制非模板成员函数

  8. 8

    限制类模板

  9. 9

    约束变量模板和模板别名

  10. 10

    学习更多指定约束的方法

  11. 11

    使用概念来约束自动参数

  12. 12

    探索标准概念库

  13. 13

    概念与约束概述

  14. 14

    测验:概念与约束

  15. 15

    挑战:回调函数兼容性验证

  16. 16

    解决方案:回调函数兼容性验证

模式与惯用法
  1. 1

    模式与惯用法简介

  2. 2

    动态多态与静态多态

  3. 3

    奇异的递归模板模式

  4. 4

    混入(Mixins)

  5. 5

    类型擦除

  6. 6

    标签调度

  7. 7

    表达式模板

  8. 8

    类型列表

  9. 9

    模式与惯用法概要

  10. 10

    测验:模式与惯用法

  11. 11

    挑战:向量代数

  12. 12

    解法:向量代数

范围与算法
  1. 1

    范围与算法简介

  2. 2

    理解容器、迭代器和算法的设计

  3. 3

    创建自定义容器和迭代器

  4. 4

    编写一个自定义的通用算法

  5. 5

    范围与算法概述

  6. 6

    测验:范围与算法

  7. 7

    挑战:元组压缩算法

  8. 8

    解决方案:元组压缩算法

范围库
  1. 1

    范围库简介

  2. 2

    从抽象范围到范围库的演进

  3. 3

    理解范围概念与视图

  4. 4

    探索范围适配器的更多示例

  5. 5

    理解受限算法

  6. 6

    编写我们自己的范围适配器

  7. 7

    范围库(Ranges Library)概述

  8. 8

    测验:范围库

  9. 9

    挑战:子范围适配器

  10. 10

    解决方案:子范围适配器

结束语
  1. 1

    结论

课程附录
  1. 1

    在本地机器上运行代码

  2. 2

    延伸阅读

Certificate of Completion

Showcase your accomplishment by sharing your certificate of completion.

Course Author:Anonymous User

Reviews

Read reviews from students who have taken this course and share your own experience.

Reviews & Comments (0)