跳至内容
模块 5

STL 与算法

掌握标准模板库──容器、迭代器、算法、范围和函数式编程。

开始学习8 节课

容器

  1. 顺序容器:vector、deque、list、array

    探索 STL 中的顺序容器──vector、deque、list、forward_list 和 array。学习它们的性能权衡、内存布局和迭代器失效规则。

  2. 关联容器:map、set、unordered_map

    学习有序和无序关联容器──映射、集合及其 multi- 和 unordered 变体。了解何时选择树结构还是哈希表。

  3. 容器适配器与特殊容器

    学习 stack、queue、priority_queue 以及现代词汇类型如 span、string_view 和 optional。了解适配器何时能简化你的代码。

迭代器与算法

  1. 迭代器:STL 的粘合剂

    理解迭代器类别,从输入迭代器到连续迭代器。学习迭代器算术、begin/end 约定以及迭代器如何将容器与算法连接起来。

  2. STL 算法:<algorithm> 的威力

    掌握最重要的 STL 算法──从搜索和排序到变换和累加。学习算法如何与迭代器组合以编写富有表达力且高效的代码。

  3. Lambda 表达式与函数式编程

    掌握 C++ Lambda 表达式──捕获列表、可变 Lambda、泛型 Lambda 及其作为算法谓词的用法。学习 std::function、std::invoke 和 IIFE 模式。

范围与视图(C++20)

  1. C++20 Ranges:全新范式

    探索 C++20 Ranges──STL 算法接口的现代重新设计。学习范围概念、基于范围的算法、投影以及用于可组合数据变换的管道运算符。

  2. 视图、惰性求值与组合

    掌握 C++20 视图──轻量级、惰性的范围适配器,通过管道运算符组合。学习 filter、transform、take、drop、split、join、iota,以及如何构建无需中间分配的强大数据管道。