emplace_back 和 push_back 的区别是什么?
考察说明
考察对 C++ 容器插入操作的构造与移动语义理解
回答思路
- 说明 push_back 在传入左值时发生拷贝,传入右值时发生移动构造
- 说明 emplace_back 直接使用参数在容器内原地构造,避免临时对象构造和移动/拷贝
- 指出对于已构造对象,两者性能差异不大,emplace_back 优势在于消除临时对象
- 能举出 emplace_back 不适用或存在隐患的场景,如显式拷贝非移动类型
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。