использовать Vec.push_back(std::move(42)) ?
Тогда уж emplace_back (вообще в целом его по умолчанию стоит использовать). А так, мув для инта - просто копия, никакого выигрыша Вот что точно стоит сделать, так это reserve перед этим действом
нет. можно поместить их в конструкторе или использоватю insert.
Ну это если одинаковые элементы все
а инсерт как поможет
будет одна аллокация, а не 5
вроде в вопросе были одинаковые
Там не было сказано по факту Если одинаковые, то в конструкторе - лучший выбор Или может вообще не стоит вектор использовать...
был пример `Vec.push_back(std::move(42))` в этом случае вместо 1000 пуш бэков оптимальнее использовать один insert
Да это ясно, но кто ж его там знает, какие там иные строчки. Может это так, для примера в вопросе Не показали ж, как именно вся 1000 элементов пишется
emplace_back выигрывает в случае когда мы в вектор хотим поместить объект и сразу в функции его создаем? то есть vector.push_back(MyClass(params…)) хуже чем emplace_back?
push_back конструирует объект в векторе, копируя/мувая переданный (смотря как передали) emplace_back форвардит аргументы в конструктор объекта прямо в самом векторе
с emplace будет меньшее количество конструкторов вызываться. для встроенных типов разницы не будет
Ну это просто как пример, не обязательно одни элементы, просто хотел узнать, есть ли выигрыш в производительности если пушить объекты через std::move
Да поправил уже, накинулись все😂 Устал человек, что вы сразу))
Это относиться ко всем контейнерам?
Обсуждают сегодня