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

课时

  • 评论
  • 关于我们
开始
开始学习
立即开始学习
  • 我的进度
  • 课程
  • 任务地图
  • 课程
  • 数据局部性:为什么 std::vector 往往更快

    C++ SELF
    等级 60,课时 0
    我们讲解为什么相同的渐进复杂度( O(N))并不保证相同的速度:CPU 缓存和缓存行如何“偏好”相邻的元素,为什么使用连续内存的 std::vector 往往优于使用节点并有内存跳转的 std::list, std::deque 在何处折中,以及如何在实践中感受局部性(打印地址、线性遍历、谨慎的迭代风格)。最后——典型的优化错误:盲目相信 O(1)、根据一次试验下结论以及忽略 vector 的引用失效规则。
    可用
  • std::map / std::set 的比较器契约

    C++ SELF
    等级 60,课时 1
    我们来讨论为什么在 std::set 和 std::map 中比较器是容器正确性的一部分,而不是“排序选项”:如何通过 comp 定义键的等价性,什么是 strict weak ordering,为什么不能用 <= 代替 <,为什么需要 tie-breaker,以及为什么比较器必须是“纯粹的”(不能有外部可变状态和副作用)。
    可用
  • unordered_*: hash, 相等比较, load factor, rehash

    C++ SELF
    等级 60,课时 2
    解析 C++ 哈希容器的内部:查找路径 key → hash → bucket → 通过 == 进行相等性检查,什么是 bucket_count() 和 load_factor(),为什么负载密度影响速度以及增长如何触发 rehash 并使迭代器失效。展示工程实践技巧: reserve()、 max_load_factor()、简单诊断以及基于 std::unordered_map 按 id 的实用索引。
    可用
  • 自定义键

    C++ SELF
    等级 60,课时 3
    解析如何为关联容器设计“身份键”: 在通过比较器实现唯一性约定的 std::map/std::set 与通过 hash + == 实现的 std::unordered_map/std::unordered_set 之间有何不同,为什么复合键需要 tie-breaker,字符串归一化如何影响正确性和性能,以及哪些错误最常破坏查找和插入。
    可用
  • 数据结构选择:std::vector 还是 std::map

    C++ SELF
    等级 60,课时 4
    分析 C++ 中容器的工程选择:何时应坚持使用 std::vector(包括“已排序的 vector”+ 二分查找的变体),何时更适合使用 std::map。在教学案例“联系人名录”中比较按键查找、插入/删除、遍历顺序、缓存局部性影响和内存开销,并给出帮助根据需求选择容器的实用问题。
    可用
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