CodeGym
AI Academy
促销
CodeGym University
学习
课程
任务
调查 & 测验
游戏
帮助
日程
社区
Users
论坛
聊天
文章
成功故事
动态
评价
订阅
浅色主题

课时

  • 评论
  • 关于我们
开始
开始学习
立即开始学习
  • 我的进度
  • 课程
  • 任务地图
  • 课程
  • std::ranges‑算法

    C++ SELF
    等级 62,课时 0
    我们来分析为什么在 C++20/23 中引入了 ranges‑算法,以及它们相比通过 begin()/ end() 的经典调用有什么便利之处:把整个容器传给 std::ranges::sort、通过 std::ranges::find_if 进行查找、 std::ranges::copy 的复合返回结果以及像 & Task::priority 这样的投影。在 TodoLite 小模型上训练“像读一句话那样”阅读代码,并指出常见错误(对 end() 的检查、头文件、关于“复制容器”的误解)。
    可用
  • std::views::filter / transform / take

    C++ SELF
    等级 62,课时 1
    我们来解析 C++23 ranges 中的基础视图适配器:view 是如何工作的,为什么需要管道运算符 |,如何使用 std::views::filter、 std::views::transform 和 std::views::take,为何计算是惰性的且只在遍历时发生,以及在使用视图时常见的错误(元素拷贝、期待“新向量”、混淆 std::views 与 std::ranges)。
    可用
  • Dangling views/ranges: 是什么以及为何危险

    C++ SELF
    等级 62,课时 2
    解析在 C++ ranges/ views 上下文中“dangling” 的含义:为什么 view 容易变成指向无效内存的“悬空窗口”,哪些场景会导致 UB(临时容器、从函数返回 view、对 std::vector 的修改、在 lambda 中按引用捕获),以及如何解读标准中的提示例如 std::ranges::dangling。最后 — 一个实用的 “TaskBoard” 示例和典型错误。
    可用
  • 结果物化:std::ranges::to 与 std::ranges::copy

    C++ SELF
    等级 62,课时 3
    讲解在 C++23 ranges 中何为“物化”:为何有时需要把惰性的 view 变为拥有所有权的容器(如 std::vector、 std::string),在哪里设置“稳定点”,以及通过两种实用方式如何实现——使用 std::ranges::to(语义优雅,但依赖标准库支持)和 使用 std::ranges::copy + std::back_inserter(可移植且可靠)。另外:在 TaskPlanner 示例中演示,提供辅助函数 to_vector 并分析常见错误。
    可用
  • 性能与可读性

    C++ SELF
    等级 62,课时 4
    分析 C++23 中实用的折衷: ranges 为什么依靠惰性“几乎免费”,惰性在哪些情况下会因重复遍历而“咬人”,以及将结果物化到 std::vector 时的代价(复制/分配)。并讨论如何编写让人读起来像食谱的管道代码。以迷你项目 TaskBook 为例,构建“最紧急未完成任务 top‑ 3”的展示,使用 std::views::filter + std::views::take,并展示何时应在单独容器中使用 std::ranges::copy。
    可用
Learn
  • 注册
  • Java 课程
  • 任务帮助
  • 定价
  • Java 语法
社区
  • 用户
  • 文章
  • 论坛
  • 聊天
  • 成功故事
  • 动态
  • 联盟计划
Company
  • 关于我们
  • 联系方式
  • 评价
  • 媒体中心
  • CodeGym for EDU
  • 常见问题
  • 支持
CodeGymCodeGym 是一个从零开始学习 Java 编程的在线课程。该课程是初学者掌握 Java 的完美方式。它包含 1200+ 个带即时验证的任务,以及必要的 Java 基础理论。为了帮助你在学习中取得成功,我们实现了一系列激励功能:测验、编码项目、关于高效学习的内容,以及 Java 开发者职业相关内容。
关注我们
界面语言
English Deutsch Español हिन्दी Français Português Polski বাংলা
简体中文
मराठी தமிழ் Italiano Bahasa Indonesia 繁體中文 Nederlands 日本語 한국어 Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский Vietnamese
“程序员是培养出来的,不是天生的” © 2026 CodeGym
MastercardVisa
“程序员是培养出来的,不是天生的” © 2026 CodeGym