Поведение std::move с push_back против emplace_back [дубликат]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Поведение std::move с push_back против emplace_back [дубликат]

Сообщение Anonymous »

Предполагая, что следующие фрагменты компилируются и запускаются.
Я не вижу очевидной разницы между этим:
v.push_back(std::move(a))

и это:
v.emplace_back(std::move(a))

Похоже, оба избегают создания копии. Если что, я всегда могу написать:
class A { ... };

void func() {
std::vector v;
A a;
FillA(&a);
v.push_back(std::move(a)) // I don't see any benefit using v.emplace_back(std::move(a))
}


Подробнее здесь: https://stackoverflow.com/questions/782 ... place-back
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»