卡尔动力面试题更新 2026-08-05

C++ 的 vector 在容量不足时如何扩容?为什么这样设计?

卡尔动力人工智能互联网/IT问题拆解技术原理C++

考察说明

考察对动态数组扩容机制及其设计动机的理解

回答思路

  1. 说明扩容过程(分配新内存、拷贝/移动、释放旧内存)
  2. 指出常见扩容倍数(如 2 倍或 1.5 倍)
  3. 解释扩容倍数的权衡(均摊复杂度 vs 内存浪费)
  4. 讨论为什么用倍增而非固定增量
  5. 说明扩容导致迭代器失效
本题已收录答题指导

本题附完整参考答案与评分标准

登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。