请说明 vector 的 clear 和 push_back 操作的时间复杂度,并解释其原因。
考察说明
考察对 C++ 标准库容器底层实现与复杂度分析的理解
回答思路
- 准确说出 clear 的复杂度为 O(n) 并解释析构每个元素
- 准确说出 push_back 的均摊复杂度为 O(1) 并解释扩容机制
- 说明 clear 不释放容量,只调用元素析构函数
- 说明 push_back 在容量不足时进行重新分配和拷贝/移动
- 区分最好、最坏与均摊情况
- 涉及元素类型的析构与拷贝成本
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。