vector 实现删除一个元素时数组会重排,若希望避免后续元素前移,有什么解决办法(不能加标识位,也不能重新实现容器)?
考察说明
考察对 vector 删除操作效率的理解以及通过接口与数据组织方式优化删除开销的能力
回答思路
- 明确说明常规 erase 会导致元素前移的时间复杂度
- 提出利用 swap 与 pop_back 将待删元素与末尾交换后 O(1) 删除
- 讨论保持元素顺序与仅需稳定性的场景差异
- 考虑使用额外索引或分块存储的替代思路
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。