в поля класса, стоит пользовательский тип данных класса? некий_vector.append(Book(1835, "Пушкин", "Золотая рыбка"));
это конструктор
хорошо, зачем он тут?
тот кто пишет такой код обычно просто не слышал про emplace_back
Или его нет у него в СТД 😜
SomeOne(...) - создание объекта класса SomeOne с передачей параметров в конструктор этого класса
https://en.cppreference.com/w/cpp/container/vector/push_back в данном случае перед вставкой создается временный объект, который перемещается при вставке конструктором void push_back( T&& value ); если это возможно ну и да, у стд вектора нет append
намного ли лучше использовать emplace_back, вместо push_back?
зависит от ситуации, если можно дёрнуть сразу конструктор класса без перемещений, то почему нет)
намного, но не всегда есть возможность это делать
о, супер, без воды, доступно, понятно
например при копирования многомерного массива в одномерный?
ага, например это, не получится использовать emplace_back
потому что уже созданы объекты, а emplace_back создает новый объект из параметров конструктора.
Это конструирование временного объекта.
Честно говоря я сейчас "рою" не свой код, и я хочу его разобрать. Чувствую не хватает логики для решения поставленой мне задачи, и настоящих примеров с которых можно компонировать решение и продуманый код, а не генерировать "стихи кодера" с непродуманой логикой. Мне показалось что append в этом коде, котрый я сейчас разбираю, выступает в роли обычной пользовательской функции,могу дать ссылку на код :)
ну параметром конструктора вполне может быть обьект того же типа
Смысла нет, тебе надо самой это делать
изъебнуться всегда можно
вообще да, но меня пример запутал немного)
а как ускорить процесс? И откуда брать недостающие знания, о существовании которых ты порой не подозреваешь?
Ускорить — учиться. БРать — тоже учиться. Читать книги.
А в чем вообще проблема? Если появляются вопросы - спрашивай
Обсуждают сегодня