后端岗位面试题更新 2026-08-05

向std::vector中尾插n个元素时,相比原生数组会多出多少次拷贝?请分析最坏情况的时间复杂度。

小马智行后端开发人工智能编码实现问题拆解技术原理C++STL

考察说明

考察对vector动态扩容机制、拷贝次数和时间复杂度的理解

回答思路

  1. 说明vector在容量不足时会重新分配内存并拷贝已有元素
  2. 指出最坏情况下每次扩容涉及约O(n)次拷贝,总拷贝次数约2n(采用倍增扩容时)
  3. 能与原生数组(无动态扩容)进行对比,并理解均摊复杂度
  4. 必要时提及C++11移动语义对拷贝的优化影响
本题已收录答题指导

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

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