文档目录

C++20 Ranges & Views

目标:用函数式管道风格替代传统迭代器循环,写出表达力更强、性能不损失的代码。

  • 2.1 Ranges 核心概念

    • view(惰性求值) vs container(持有所有权)。
    • sentinel(哨兵迭代器)的底层差异。
    • begin/end 迭代器与哨兵的类型解耦优势。
  • 2.2 常用 Views

    • std::views::filter、transform、take、drop、reverse、join、split。
    • 管道组合 vec | filter(...) | transform(...) | take(5)。
  • 2.3 惰性求值性能优势

    • 为什么 Ranges 不会产生中间临时容器?
    • 对比 std::copy_if + std::transform 多次遍历。
  • 2.4 自定义 View 适配器

    • 实现一个 split view(按分隔符分割字符串)。
    • view_interface 基类的作用。