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

课时

  • 评论
  • 关于我们
开始
开始学习
立即开始学习
  • 我的进度
  • 课程
  • 任务地图
  • 课程
  • C++ 中的 lambda 语法: [](…) { … }

    C++ SELF
    等级 22,课时 0
    我们来讲解如何阅读和编写 C++ 中的 lambda 表达式:它的形式由哪些部分组成 [] (…) -> T { … }, 如何指定参数和返回类型,如何实现“创建并立即调用” ( [] { … } ()), 以及常见的错误(漏掉 ;、 误以为会自动执行、整数除法、return 中不同类型的返回值)。
    可用
  • 捕获变量: [&], [=], [x], [&x] 与错误

    C++ SELF
    等级 22,课时 1
    讲解 C++ lambda 中的捕获列表如何工作:按值捕获( [x], [=])和按引用捕获( [&x], [&])、混合形式( [=, &count])、用于内部状态的关键字 mutable,以及主要陷阱——引用捕获时的生命周期问题、参数遮蔽和典型错误,这些错误要么导致无法编译,要么导致不可预测的行为。
    可用
  • Generic lambdas: []( auto & x){...} 作为 “软模板”

    C++ SELF
    等级 22,课时 2
    解析 C++ 中的 generic lambda:参数中 auto 的工作方式,为什么这类似于“软模板”,lambda 主体的限制在哪里(对像 + 或 size() 之类操作的要求),以及在实践中如何选择按值传递或按引用传递—— auto、 auto &、 const auto &——以避免不必要的拷贝和“不能用临时值调用”的问题。
    可用
  • std::function — 何时需要及其代价

    C++ SELF
    等级 22,课时 3
    我们来讲解为什么在 C++ 中需要 std::function<R(Args...)>:为什么每个 lambda 有自己的类型,如何在同一变量中保存具有相同签名的不同 callable,如何处理“空”状态以及如何检查 if ( f)。讨论封装的代价:间接调用、可能的内存分配和昂贵的复制,然后实现一个基于 std::vector 的实用迷你命令调度器和处理器表。
    可用
  • 算法中的 Lambda:sort、remove_if、transform

    C++ SELF
    等级 22,课时 4
    讲解 Lambda 表达式如何把 STL 算法变成“数据处理管道”:通过给 std::sort 传入比较器来指定排序规则,通过 std::remove_if 按谓词删除元素(并通过 erase 正确收尾),然后通过 std::transform 构造派生数据。同时巩固严格顺序(使用 < 而非 <=)、“删除当…” 谓词的含义以及在 Lambda 中谨慎捕获设置的做法。
    可用
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