Что ж это за привычка-то такая делать пример кода на плюсах, когда на них кодишь откровенно плохо?
1) Передача строки в конструктор/сеттер класса по значению, а дальше просто присваивание полю класса без мув, в итоге 2 лишних копирования в худшем случае
2) Аналогично передача жирного std::list и отсутствие его перемещения в поле класса
3) Геттер строки без константной ссылки в классе Product. Там будет чистейшее копирование, это не то место, где будет оптимизация NRVO/Copy Elision
4) Использование `operator +` для строк вместо append, из-за чего там также куча глубоких копирований строк
const char* принимает потому что вместо char. Это не столь критично, но тем не менее
Edit: хоть там и есть перегрузка (size_t n, char symbol), все равно по возможности лучше пушбек использовать, быстрее будет теоретически
Это зависит от реализации. Мой посыл в том, чтобы юзать именно append (push_back по возможности для одиночных чаров)
Что ж это за привычка-то такая делать пример кода на плюсах, когда на них кодишь откровенно плохо?
1) Передача строки в конструктор/сеттер класса по значению, а дальше просто присваивание полю класса без мув, в итоге 2 лишних копирования в худшем случае
2) Аналогично передача жирного std::list и отсутствие его перемещения в поле класса
3) Геттер строки без константной ссылки в классе
Product
. Там будет чистейшее копирование, это не то место, где будет оптимизация NRVO/Copy Elision4) Использование `operator +` для строк вместо
append
, из-за чего там также куча глубоких копирований строк