Мне было интересно, какие различия между ними. Я заметил, что emplace - это С++ 11 дополнение. Итак, почему добавление?
С++ std::vector emplace vs insert
Ответ 1
Emplace принимает аргументы, необходимые для построения объекта на месте, тогда как вставка принимает (ссылку на) объект.
struct Foo
{
Foo(int n, double x);
};
std::vector<Foo> v;
v.emplace(someIterator, 42, 3.1416);
v.insert(someIterator, Foo(42, 3.1416));
Ответ 2
insert
копирует объекты в вектор.
emplace
постройте их внутри вектора.