Зачем мне использовать push_back вместо emplace_bac к?

Векторы C++11 имеют новую функцию emplace_back. В отличие от push_back, который полагается на оптимизацию компилятора, чтобы избежать копирования, emplace_backиспользует идеальную переадресацию для отправки аргументов непосредственно в конструктор для создания объекта на месте.Мне кажется, что emplace_backделает все, что может push_back, но в некоторых случаях он будет делать это лучше (но не хуже).

По какой причине я должен использовать push_back?

212
задан ildjarn 4 June 2012 в 15:09
поделиться