我有点困惑有关之间的差异push_back和emplace_back.
void emplace_back(Type&& _Val);
void push_back(const Type& _Val);
void push_back(Type&& _Val);
Run Code Online (Sandbox Code Playgroud)
因为有一个push_back超载采用右值参考我不太明白目的是emplace_back什么?
我目前正在阅读Scott Meyer的“ Effective Modern C ++”。在第42项中,他声称,例如,an std::vector::emplace_back通常比但使用快甚至更快push_back。他列出了三个条件,在该条件下至少应该同样快,但在没有完全满足这些条件的情况下没有提供反例。有人可以给我提供一个示例,该示例中emplace_back预期使用会导致比使用严格更差的性能push_back吗?