这个问题已经在这里有一个答案:
- 的push_back VS emplace_back 6个回答
我想知道什么是两者之间的差异。 我注意到,布设是C ++ 11的补充。 那么,为什么加入?
这个问题已经在这里有一个答案:
我想知道什么是两者之间的差异。 我注意到,布设是C ++ 11的补充。 那么,为什么加入?
布设需要构建到位的对象所必需的参数,而插入件需要一个对象(一个引用)。
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
构建它们的矢量的内部。