我有点困惑有关之间的差异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什么?
试图理解使用push()或emplace()for 之间的区别std::stack.
我在想,如果我创建一个std::stack<int>,那么我会使用push()因为整数是一种原始类型而且没有任何东西emplace()需要构造.
但是,如果我正在创建,std::stack<string>那么我会选择emplace()因为std::string是一个对象.
这是正确的用法吗?