Итак, если мне не нужны новые функции, которые предоставляет emplace_back (emplace), я должен использовать push_back (insert)? - PullRequest
0 голосов
/ 26 мая 2020

После того, как вчера задал фиктивные вопросы, поэкспериментировал и прочитал довольно много о emplace_back по push_back, я все еще не совсем уверен, какой из них я должен использовать «по умолчанию», то есть большую часть времени.

Как было указано в ответе на популярный вопрос « Зачем мне когда-либо использовать push_back вместо emplace_back? » и в других статьях первое впечатление, которое получили люди после введения emplace_back, что «он может делать все, что может сделать push_back (insert), а иногда и лучше» - неверно.

Пока что у меня сложилось впечатление, что в случаях, когда я использую семантику перемещения ( или если мне нужно сделать копию), где я не могу извлечь выгоду из создания объекта на месте, и когда мне не нужно возвращаемое значение, было бы безопаснее использовать push_back, чтобы не столкнуться с проблемами. можно получить с явным конструктором, описанным в ссылках, и, возможно, с некоторыми другими.

Проще говоря, если я не использую новые функции, которые есть в emplace_back, а push_back / insert - нет, мне лучше придерживаться push_back / insert.

Я прав, или я снова что-то упускаю?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...