Предположим, у меня есть класс, у которого есть конструктор без аргументов, и контейнер STL с его объектами: list<Object> lst;
Есть ли способ вставить новый объект на месте?
Я знаю что-то вроде lst.push_back(Object());
будет работать так же быстро, как и при использовании конструктора перемещения, однако кажется немного странным, что нет функции для простого создания нового объекта в конце списка без каких-либо аргументов, хотя уже есть emplace, которая могла бы соответствовать этому место.
Не могли бы вы дать некоторые объяснения, если это на самом деле невозможно?
Что ж, emplace_back()
делает именно это.
Просто используйте lst.emplace_back();
и эта функция создаст объект на месте в конце списка.
Ты можешь использовать
lst.emplace_back();