Content
33 Lessons • 0 Quizzes • 0 Challenges
核心语言
- 1
历史
字面量
- 1
字面量
- 2
用户定义的字面量
- 3
C++14 内置字面量
- 4
原始形式与处理形式
- 5
示例
- 6
练习
- 7
解决方案
类型
- 1
作用域枚举
- 2
枚举示例(concept)
- 3
指针
- 4
空指针
- 5
指针示例(concept)
- 6
引用
自动类型推导
- 1
自动类型推导:auto
- 2
使用 auto 进行重构
- 3
- 示例
- 4
- 练习
- 5
- 解决方案
- 6
自动类型推导:decltype
- 7
自动返回类型
- 8
- 示例
- 9
- 练习
- 10
- 解决方案
转换
- 1
显式转换
- 2
动态转换
- 3
静态转换
- 4
常量转换
- 5
reinterpret_cast
- 6
类型信息
统一初始化
- 1
统一初始化使用 {}
- 2
示例:{} 在不同类型和结构上的用法
- 3
练习:用初始化列表初始化容器
- 4
解决方案
const、constexpr 和 volatile
- 1
常量
- 2
常量表达式:constexpr
- 3
示例
- 4
- 练习
- 5
volatile
移动语义与完美转发
- 1
右值和左值
- 2
- 示例
- 3
拷贝与移动语义
- 4
移动语义
- 5
- 示例
- 6
- 练习
- 7
- 解决方案
- 8
完美转发
- 9
- 示例
- 10
- 练习
- 11
- 解决方案
内存管理
- 1
内存分配
- 2
内存释放
- 3
示例(concept)
- 4
重载 new 和 delete
- 5
重载 new 和 delete:一些调整
函数
- 1
函数声明
- 2
示例
- 3
函数重载
- 4
Lambda 函数
- 5
示例(concept)
- 6
练习(concept)
- 7
- 解决方案
类与对象
- 1
类类型
- 2
构造函数
- 3
更多类型的构造函数
- 4
实例的初始化
- 5
- 练习
- 6
- 解决方案
- 7
构造函数委托
- 8
析构函数
- 9
- 示例
- 10
方法
- 11
- 示例
- 12
请求与抑制方法
- 13
- 示例
- 14
- 练习
- 15
- 解决方案
- 16
操作符重载
- 17
显式转换操作符
- 18
- 练习
- 19
- 解决方案
- 20
调用运算符
- 21
- 示例
- 22
- 练习
- 23
- 解决方案
- 24
成员访问权限
- 25
- 示例
- 26
友元声明
- 27
结构体和联合体
继承
- 1
抽象基类
- 2
访问权限
- 3
- 示例
- 4
- 练习
- 5
构造函数继承
- 6
- 示例
- 7
- 练习
- 8
- 解决方案
- 9
基类初始化
- 10
析构函数调用
- 11
- 练习
- 12
虚方法
- 13
- 示例
- 14
- 练习
- 15
重写与最终修饰符
- 16
- 示例
- 17
- 练习
- 18
- 解决方案
- 19
多重继承
- 20
- 示例
模板
- 1
函数模板
- 2
- 示例
- 3
- 练习
- 4
- 解决方案
- 5
类模板
- 6
- 示例
- 7
- 练习
- 8
- 解决方案
- 9
朋友
- 10
- 示例
- 11
- 练习
- 12
- 解决方案
- 13
模板参数
- 14
- 示例
- 15
- 练习
- 16
- 解决方案
- 17
依赖名称
- 18
- 示例
- 19
可变参数模板
- 20
- 示例
- 21
模板参数推导
- 22
- 示例
- 23
- 练习
- 24
- 解决方案
- 25
特化
- 26
- 示例
- 27
- 练习
- 28
- 解决方案
- 29
CRTP
- 30
- 示例
- 31
- 练习
- 32
- 解决方案
工具类
- 1
std::bind 和 std::function
- 2
- 练习
- 3
- 解决方案
- 4
std::pair
- 5
std::tuple
- 6
- 练习
- 7
- 解决方案
- 8
引用包装器
- 9
类型特性
- 10
类型特性:类别与转换
- 11
- 示例
- 12
- 练习
- 13
- 解决方案
智能指针
- 1
简介
- 2
智能指针
- 3
示例
- 4
共享指针
- 5
示例(concept)
- 6
弱指针
- 7
- 示例
- 8
循环引用
- 9
- 示例
- 10
- 练习
- 11
- 解决方案
- 12
性能对比
- 13
传递智能指针
容器概述
- 1
简介
- 2
创建和删除
- 3
大小
- 4
访问
- 5
赋值与交换
- 6
比较
1.1 顺序容器
- 1
简介
- 2
数组
- 3
练习(concept)
- 4
- 解决方案
- 5
向量
- 6
- 练习
- 7
- 解决方案
- 8
双端队列
- 9
列表
- 10
前向列表
- 11
- 练习
1.2 一般关联容器
- 1
简介
- 2
插入和删除
1.2.1 有序关联容器
- 1
概述
- 2
键和值
- 3
比较准则
- 4
特殊搜索功能
- 5
映射
- 6
练习(summary)
1.2.2 无序关联容器
- 1
概览
- 2
键和值
- 3
性能
- 4
哈希函数
- 5
详情
- 6
练习(concept)
- 7
解决方案(summary)
算法
- 1
简介
- 2
约定
- 3
for_each
- 4
练习
- 5
解决方案
1.1 非修改性算法
- 1
简介
- 2
搜索元素
- 3
计数元素
- 4
测试范围
- 5
比较范围
- 6
搜索范围
1.2 修改算法
- 1
复制元素和范围
- 2
替换元素和范围
- 3
删除元素和范围
- 4
填充和生成范围
- 5
移动范围
- 6
交换范围
- 7
转换范围
- 8
反转区间
- 9
旋转区间
- 10
打乱范围
- 11
删除重复项
1.3 更多算法
- 1
分区
- 2
排序
- 3
二分查找
- 4
合并操作
- 5
堆
- 6
最小值和最大值
- 7
排列
- 8
数值
- 9
练习
- 10
- 解决方案
可调用对象
- 1
简介
- 2
函数与函数对象
- 3
Lambda 函数
迭代器
- 1
简介
- 2
类别
- 3
迭代器创建
- 4
有用的函数
- 5
适配器
字符串
- 1
简介
- 2
创建和删除
- 3
C++ 字符串与 C 字符串之间的转换
- 4
大小与容量
- 5
比较与连接
- 6
元素访问
- 7
输入和输出
- 8
搜索
- 9
练习
- 10
解决方案
- 11
修改操作
- 12
数值转换
正则表达式
- 1
简介
- 2
字符类型
- 3
正则表达式对象
- 4
搜索结果
- 5
匹配
- 6
搜索
- 7
练习
- 8
解决方案
- 9
替换
- 10
练习
- 11
解决方案
- 12
格式
- 13
重复搜索
输入和输出
- 1
简介
- 2
字符串流
- 3
文件流
- 4
- 练习
- 5
- 解决方案
- 6
流的状态
- 7
用户自定义数据类型
- 8
层次结构
- 9
iostream
- 10
输入和输出函数
- 11
- 练习
- 12
- 解决方案
- 13
格式化说明符
- 14
- 练习
线程
- 1
线程简介
- 2
线程的创建
- 3
管理线程生命周期
- 4
线程生命周期管理:警告与技巧
- 5
向线程传递参数
- 6
线程参数:未定义行为
- 7
线程的参数:竞态条件与锁
- 8
练习
- 9
解决方案
- 10
线程的方法
- 11
线程的方法在实际中的应用
共享数据
- 1
共享数据简介
- 2
互斥锁简介
- 3
互斥锁类型与加锁方法
- 4
互斥锁的问题:死锁
- 5
互斥锁的问题:避免异常
- 6
锁的类型:std::lock_guard
- 7
锁的类型:std::unique_lock
- 8
锁的类型:std::shared_lock
- 9
练习
- 10
解决方案
- 11
线程安全的初始化
- 12
线程安全的初始化:常量表达式
- 13
线程安全的初始化:call_once 和 once_flag
- 14
练习
- 15
解决方案
- 16
线程安全的初始化 - 具有块作用域的静态变量
任务
- 1
任务简介
- 2
线程 vs. 任务
- 3
std::async 简介
- 4
async:启动策略
- 5
async:发起后不管
- 6
练习(concept)
- 7
- 解决方案
- 8
std::packaged_task 简介
- 9
- 练习
- 10
- 解决方案
- 11
Promise 和 Future 简介
- 12
- 练习
- 13
- 解决方案
- 14
Promise 和 Future:返回通知
- 15
std::shared_future 简介
结论
- 1
接下来该去哪里?
Certificate of Completion
Showcase your accomplishment by sharing your certificate of completion.
Course Author:Anonymous User