This question already has answers here:
push_back vs emplace_back

(7个答案)


已关闭8年。




我想知道两者之间有什么区别。我注意到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));

关于c++ - C++ std::vector放置vs插入,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14788261/

10-11 00:22