请解释 STL 中 vector 的 push_back 操作的时间复杂度,并说明其扩容机制如何保证均摊复杂度为 O(1)。
考察说明
考察对 STL 容器底层实现、扩容策略及均摊复杂度分析的理解
回答思路
- 明确 push_back 的均摊时间复杂度为 O(1),最坏情况为 O(n)
- 解释扩容倍数(如 2 倍或 1.5 倍)及内存分配策略
- 说明均摊分析的原理:扩容操作次数有限,总代价被分散到每次 push_back
- 讨论扩容时的元素拷贝/移动成本及对性能的影响
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。