Content
13 Lessons • 0 Quizzes • 0 Challenges
简介
- 1
课程简介
C++20 新特性
- 1
章节概览
- 2
使用新的格式库来格式化文本
- 3
使用 constexpr 实现编译时向量和字符串
- 4
安全地比较不同类型的整数
- 5
使用太空船操作符 <=> 进行三路比较
- 6
轻松通过 <version> 头文件查找特性测试宏
- 7
使用概念和约束创建更安全的模板
- 8
通过模块避免重新编译模板库
- 9
使用范围创建容器的视图
- 10
测验:C++20 特性
通用 STL 特性
- 1
章节概览
- 2
使用新的 Span 类使我们的 C 数组更安全
- 3
使用结构化绑定返回多个值
- 4
在 if 和 switch 语句中初始化变量
- 5
使用模板参数推导以简化和提高代码清晰度
- 6
使用 if constexpr 简化编译时决策
- 7
测验:STL 通用特性
- 8
挑战:让我们的代码更安全且更易读
STL 容器
- 1
章节概览
- 2
使用统一擦除函数从容器中删除元素
- 3
从无序向量中以常数时间删除元素
- 4
直接且安全地访问向量元素
- 5
保持向量元素有序
- 6
高效地向映射中插入元素
- 7
高效修改 Map 中的键
- 8
使用 unordered_map 与自定义键
- 9
使用 Set 对用户输入进行排序和过滤
- 10
一个简单的基于双端队列的逆波兰表达式计算器
- 11
一个使用 Map 的词频统计器
- 12
查找包含长句子的向量的向量
- 13
使用多重映射实现待办事项列表
- 14
测验:STL 容器
- 15
挑战:让我们来玩转容器
兼容的迭代器
- 1
章节概览
- 2
迭代器是基础
- 3
创建一个可迭代的范围
- 4
使我们的迭代器与 STL 迭代器特性兼容
- 5
使用迭代器适配器填充 STL 容器
- 6
创建生成器作为迭代器
- 7
使用反向迭代器适配器实现逆向遍历
- 8
使用哨兵值迭代长度未知的对象
- 9
构建一个 Zip 迭代器适配器
- 10
创建一个随机访问迭代器
- 11
测验:兼容的迭代器
- 12
挑战:反转字符串中的所有内容
Lambda 表达式
- 1
章节概览
- 2
Lambda 表达式
- 3
使用 Lambda 表达式实现作用域内可重用的代码
- 4
使用 Lambda 表达式作为谓词与算法库配合使用
- 5
使用 std::function 作为多态包装器
- 6
使用递归连接 Lambda 表达式
- 7
使用逻辑与组合谓词
- 8
使用相同输入调用多个 Lambda 函数
- 9
使用映射的 Lambda 表达式实现跳转表
- 10
测验:Lambda 表达式
- 11
挑战:使用Lambda表达式输出
STL 算法
- 1
章节概览
- 2
从一个迭代器复制到另一个迭代器
- 3
将容器元素合并为字符串
- 4
使用 std::sort() 对容器进行排序
- 5
使用 std::transform 修改容器
- 6
在容器中查找项目
- 7
使用 std::clamp 将容器的值限制在指定范围内
- 8
使用 std::sample 的示例数据集
- 9
生成数据序列的排列
- 10
合并已排序的容器
- 11
测验:STL 算法
- 12
挑战:深入算法世界
字符串、流与格式化
- 1
章节概览
- 2
使用 string_view 作为轻量级字符串对象
- 3
连接字符串
- 4
转换字符串
- 5
使用 C++20 的格式化库格式化文本
- 6
去除字符串中的空白字符
- 7
从用户输入读取字符串
- 8
统计文件中的单词数量
- 9
从文件输入初始化复杂结构
- 10
使用 char_traits 自定义字符串类
- 11
使用正则表达式解析字符串
- 12
测验:字符串、流与格式化
- 13
挑战:带零空格的字符串
工具类
- 1
章节概览
- 2
使用 std::optional 管理可选值
- 3
使用 std::any 实现类型安全
- 4
使用 std::variant 存储不同类型
- 5
使用 std::chrono 的时间事件
- 6
使用折叠表达式处理可变参数元组
- 7
使用 std::unique_ptr 管理分配的内存
- 8
使用 std::shared_ptr 共享对象
- 9
与共享对象一起使用弱指针
- 10
共享托管对象的成员
- 11
比较随机数引擎
- 12
比较随机数分布生成器
- 13
测验:工具类
- 14
挑战:让我们检查一下数据的类型
并发与并行
- 1
章节概览
- 2
等待指定的时间
- 3
使用 std::thread 实现并发
- 4
使用 std::async 实现并发
- 5
使用执行策略并行运行 STL 算法
- 6
使用互斥锁安全地共享数据
- 7
使用 std::atomic 共享标志和值
- 8
使用 std::call_once 初始化线程
- 9
使用 std::condition_variable 解决生产者-消费者问题
- 10
测验:并发与并行
- 11
挑战:在多线程函数调用中睡眠
使用文件系统
- 1
章节概览
- 2
为 Path 类专门化 std::formatter
- 3
使用路径操作函数
- 4
列出目录中的文件
- 5
使用 Grep 工具搜索目录和文件
- 6
使用正则表达式和 directory_iterator 重命名文件
- 7
创建一个磁盘使用量计数器
- 8
测验:文件系统的使用
- 9
挑战:路径里面有什么?
一些其他想法
- 1
章节概览
- 2
创建一个用于搜索建议的 Trie 类
- 3
实现多个生产者和消费者
- 4
计算两个向量的误差平方和
- 5
构建我们自己的算法:分割
- 6
利用现有算法:收集
- 7
去除连续的空白字符
- 8
将数字转换为文字
- 9
测验:Trie、Gather 函数与空白字符去除
- 10
挑战:移除所有空白字符!
结论
- 1
最后的思考
Certificate of Completion
Showcase your accomplishment by sharing your certificate of completion.
Course Author:Anonymous User