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

课时

  • 评论
  • 关于我们
开始
开始学习
立即开始学习
  • 我的进度
  • 课程
  • 任务地图
  • 课程
  • 模板中的 static_assert

    C++ SELF
    等级 58,课时 0
    解析如何在 C++ 模板中使用 static_assert,以便不要得到一大堆杂乱无章的错误信息,而是得到一个清晰可读的原因:到底在哪儿违反了契约以及对类型有什么期望。我们会讨论检查何时触发(在实例化时)、为什么在模板中写 static_assert( false, ...) 很危险、如何使用技巧 always_false_v<T>、在哪里放置检查更合适,以及如何将 concept/ requires 与友好的诊断信息结合使用。
    可用
  • SFINAE vs concepts: 为什么更推荐 concepts

    C++ SELF
    等级 58,课时 1
    讲解 C++ 如何“筛除”不合适的模板:通过 SFINAE(当替换出错时重载消失)以及通过 concepts/ requires(将契约直接写在签名中可见)。比较可读性、编译器错误质量和重载选择,然后为数字、字符串和范围( std::ranges::range)以 C++20/23 风格实现一个实用例子 edu::pretty_print。
    可用
  • 迭代器类别: input / forward / bidirectional / random-access

    C++ SELF
    等级 58,课时 2
    我们来解析 STL 中迭代器的“能力阶梯”: input、 forward、 bidirectional 和 random-access 有何不同,哪些操作是有保证的( ++、 --、 +、 []、迭代器的差值),为什么区间几乎总是用 [ first , last ) 表示,以及如何选择像 std::advance 这样的通用工具,而不是对容器做错误假设(例如 vector vs map)。
    可用
  • iterator vs const_iterator — 安全访问

    C++ SELF
    等级 58,课时 3
    解析为什么在 C++ 中需要 const_iterator 以及方法 cbegin()/ cend(),它们如何把“只读意图”固定为可检查的规则,并将意外修改变成编译错误。比较 begin()/ end() 与 cbegin()/ cend() 的行为,看看与算法( std::find_if)的交互,以及通过 auto、 auto& 和 const auto& 在 range-for 中选择访问模式。
    可用
  • Inserter:back_inserter / inserter 以及它们的用途

    C++ SELF
    等级 58,课时 4
    解析 STL 算法如何通过“输出迭代器”写入结果,以及为什么对空容器写入 dst . begin() 会带来问题。学习如何通过 std :: back_inserter(通过 push_back() 在末尾插入)和 std :: inserter(对 set/ map 使用 insert() 插入)将容器连接到算法,并区分 reserve() 与 resize() 的差别,分析常见错误。
    可用
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