草庐IT

c++ - 为什么我会使用 push_back 而不是 emplace_back?

C++11vector具有新函数emplace_back。与push_back不同,它依赖于编译器优化来避免复制,emplace_back使用完美转发将参数直接发送到构造函数以就地创建对象。在我看来,emplace_back做了所有push_back可以做的事情,但有时它会做得更好(但绝不会更糟)。我必须使用push_back的原因是什么? 最佳答案 在过去的四年里,我对这个问题思考了很多。我得出的结论是,大多数关于push_back与emplace_back的解释都忽略了全貌。去年,我在C++Now的TypeDeductionin