Logo
☆☆☆☆☆
0.0
Beginner
23h

专业人士的C++基础

C++ 是软件开发者在需要极致性能和高安全性时的常见首选语言。然而,学习其丰富的核心语言特性和众多库,往往看似永无止境。本课程只有一个目标:终结这一漫长的学习过程。 本课程融合了我其他 C++ 课程中的精华内容,并加入了全新材料,将所有最关键的知识集中呈现。你将掌握成为一名专业 C++ 程序员所需的核心技能,涵盖当前的 C++17 标准。你将深入学习内存管理、继承、模板、向量、线程、任务等内容。完成本课程后,你将具备充分的能力,在日常工作中充分发挥 C++ 的强大潜力。

33 Lessons
Included in Subscription Plan
Personalized Learning
Powered by AI
专业人士的C++基础
C++ 是软件开发者在需要极致性能和高安全性时的常见首选语言。然而,学习其丰富的核心语言特性和众多库,往往看似永无止境。本课程只有一个目标:终结这一漫长的学习过程。 本课程融合了我其他 C++ 课程中的精华内容,并加入了全新材料,将所有最关键的知识集中呈现。你将掌握成为一名专业 C++ 程序员所需...

Content

33 Lessons • 0 Quizzes • 0 Challenges

核心语言
  1. 1

    历史

字面量
  1. 1

    字面量

  2. 2

    用户定义的字面量

  3. 3

    C++14 内置字面量

  4. 4

    原始形式与处理形式

  5. 5

    示例

  6. 6

    练习

  7. 7

    解决方案

类型
  1. 1

    作用域枚举

  2. 2

    枚举示例(concept)

  3. 3

    指针

  4. 4

    空指针

  5. 5

    指针示例(concept)

  6. 6

    引用

自动类型推导
  1. 1

    自动类型推导:auto

  2. 2

    使用 auto 进行重构

  3. 3

    - 示例

  4. 4

    - 练习

  5. 5

    - 解决方案

  6. 6

    自动类型推导:decltype

  7. 7

    自动返回类型

  8. 8

    - 示例

  9. 9

    - 练习

  10. 10

    - 解决方案

转换
  1. 1

    显式转换

  2. 2

    动态转换

  3. 3

    静态转换

  4. 4

    常量转换

  5. 5

    reinterpret_cast

  6. 6

    类型信息

统一初始化
  1. 1

    统一初始化使用 {}

  2. 2

    示例:{} 在不同类型和结构上的用法

  3. 3

    练习:用初始化列表初始化容器

  4. 4

    解决方案

const、constexpr 和 volatile
  1. 1

    常量

  2. 2

    常量表达式:constexpr

  3. 3

    示例

  4. 4

    - 练习

  5. 5

    volatile

移动语义与完美转发
  1. 1

    右值和左值

  2. 2

    - 示例

  3. 3

    拷贝与移动语义

  4. 4

    移动语义

  5. 5

    - 示例

  6. 6

    - 练习

  7. 7

    - 解决方案

  8. 8

    完美转发

  9. 9

    - 示例

  10. 10

    - 练习

  11. 11

    - 解决方案

内存管理
  1. 1

    内存分配

  2. 2

    内存释放

  3. 3

    示例(concept)

  4. 4

    重载 new 和 delete

  5. 5

    重载 new 和 delete:一些调整

函数
  1. 1

    函数声明

  2. 2

    示例

  3. 3

    函数重载

  4. 4

    Lambda 函数

  5. 5

    示例(concept)

  6. 6

    练习(concept)

  7. 7

    - 解决方案

类与对象
  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

    - 示例

  14. 14

    - 练习

  15. 15

    - 解决方案

  16. 16

    操作符重载

  17. 17

    显式转换操作符

  18. 18

    - 练习

  19. 19

    - 解决方案

  20. 20

    调用运算符

  21. 21

    - 示例

  22. 22

    - 练习

  23. 23

    - 解决方案

  24. 24

    成员访问权限

  25. 25

    - 示例

  26. 26

    友元声明

  27. 27

    结构体和联合体

继承
  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

    - 示例

  14. 14

    - 练习

  15. 15

    重写与最终修饰符

  16. 16

    - 示例

  17. 17

    - 练习

  18. 18

    - 解决方案

  19. 19

    多重继承

  20. 20

    - 示例

模板
  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

    模板参数

  14. 14

    - 示例

  15. 15

    - 练习

  16. 16

    - 解决方案

  17. 17

    依赖名称

  18. 18

    - 示例

  19. 19

    可变参数模板

  20. 20

    - 示例

  21. 21

    模板参数推导

  22. 22

    - 示例

  23. 23

    - 练习

  24. 24

    - 解决方案

  25. 25

    特化

  26. 26

    - 示例

  27. 27

    - 练习

  28. 28

    - 解决方案

  29. 29

    CRTP

  30. 30

    - 示例

  31. 31

    - 练习

  32. 32

    - 解决方案

工具类
  1. 1

    std::bind 和 std::function

  2. 2

    - 练习

  3. 3

    - 解决方案

  4. 4

    std::pair

  5. 5

    std::tuple

  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

    示例(concept)

  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

    比较

1.1 顺序容器
  1. 1

    简介

  2. 2

    数组

  3. 3

    练习(concept)

  4. 4

    - 解决方案

  5. 5

    向量

  6. 6

    - 练习

  7. 7

    - 解决方案

  8. 8

    双端队列

  9. 9

    列表

  10. 10

    前向列表

  11. 11

    - 练习

1.2 一般关联容器
  1. 1

    简介

  2. 2

    插入和删除

1.2.1 有序关联容器
  1. 1

    概述

  2. 2

    键和值

  3. 3

    比较准则

  4. 4

    特殊搜索功能

  5. 5

    映射

  6. 6

    练习(summary)

1.2.2 无序关联容器
  1. 1

    概览

  2. 2

    键和值

  3. 3

    性能

  4. 4

    哈希函数

  5. 5

    详情

  6. 6

    练习(concept)

  7. 7

    解决方案(summary)

算法
  1. 1

    简介

  2. 2

    约定

  3. 3

    for_each

  4. 4

    练习

  5. 5

    解决方案

1.1 非修改性算法
  1. 1

    简介

  2. 2

    搜索元素

  3. 3

    计数元素

  4. 4

    测试范围

  5. 5

    比较范围

  6. 6

    搜索范围

1.2 修改算法
  1. 1

    复制元素和范围

  2. 2

    替换元素和范围

  3. 3

    删除元素和范围

  4. 4

    填充和生成范围

  5. 5

    移动范围

  6. 6

    交换范围

  7. 7

    转换范围

  8. 8

    反转区间

  9. 9

    旋转区间

  10. 10

    打乱范围

  11. 11

    删除重复项

1.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

    Lambda 函数

迭代器
  1. 1

    简介

  2. 2

    类别

  3. 3

    迭代器创建

  4. 4

    有用的函数

  5. 5

    适配器

字符串
  1. 1

    简介

  2. 2

    创建和删除

  3. 3

    C++ 字符串与 C 字符串之间的转换

  4. 4

    大小与容量

  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

    解决方案

  9. 9

    替换

  10. 10

    练习

  11. 11

    解决方案

  12. 12

    格式

  13. 13

    重复搜索

输入和输出
  1. 1

    简介

  2. 2

    字符串流

  3. 3

    文件流

  4. 4

    - 练习

  5. 5

    - 解决方案

  6. 6

    流的状态

  7. 7

    用户自定义数据类型

  8. 8

    层次结构

  9. 9

    iostream

  10. 10

    输入和输出函数

  11. 11

    - 练习

  12. 12

    - 解决方案

  13. 13

    格式化说明符

  14. 14

    - 练习

线程
  1. 1

    线程简介

  2. 2

    线程的创建

  3. 3

    管理线程生命周期

  4. 4

    线程生命周期管理:警告与技巧

  5. 5

    向线程传递参数

  6. 6

    线程参数:未定义行为

  7. 7

    线程的参数:竞态条件与锁

  8. 8

    练习

  9. 9

    解决方案

  10. 10

    线程的方法

  11. 11

    线程的方法在实际中的应用

共享数据
  1. 1

    共享数据简介

  2. 2

    互斥锁简介

  3. 3

    互斥锁类型与加锁方法

  4. 4

    互斥锁的问题:死锁

  5. 5

    互斥锁的问题:避免异常

  6. 6

    锁的类型:std::lock_guard

  7. 7

    锁的类型:std::unique_lock

  8. 8

    锁的类型:std::shared_lock

  9. 9

    练习

  10. 10

    解决方案

  11. 11

    线程安全的初始化

  12. 12

    线程安全的初始化:常量表达式

  13. 13

    线程安全的初始化:call_once 和 once_flag

  14. 14

    练习

  15. 15

    解决方案

  16. 16

    线程安全的初始化 - 具有块作用域的静态变量

任务
  1. 1

    任务简介

  2. 2

    线程 vs. 任务

  3. 3

    std::async 简介

  4. 4

    async:启动策略

  5. 5

    async:发起后不管

  6. 6

    练习(concept)

  7. 7

    - 解决方案

  8. 8

    std::packaged_task 简介

  9. 9

    - 练习

  10. 10

    - 解决方案

  11. 11

    Promise 和 Future 简介

  12. 12

    - 练习

  13. 13

    - 解决方案

  14. 14

    Promise 和 Future:返回通知

  15. 15

    std::shared_future 简介

结论
  1. 1

    接下来该去哪里?

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)