我想知道它们之间的区别。 我注意到emplace是C ++ 11的补充。 所以为什么要补充?
Emplace需要传递构造对象所需的参数以原地构造对象,而insert则需要(引用)一个对象。
struct Foo
{
Foo(int n, double x);
};
std::vector<Foo> v;
v.emplace(someIterator, 42, 3.1416);
v.insert(someIterator, Foo(42, 3.1416));
insert
将对象复制到向量中。
emplace
在向量内部构造它们。