Да, это правильно.Случайное копирование в ранжированную переменную цикла является особенно распространенной проблемой, когда используется auto
:
for (auto it : x)
sum += it.size();
Это неэффективно, поскольку даже при использовании auto
для автоматической установки типа и даже при итерациипревышает набор vector&
с, it
заканчивается типом vector
.(Решением было бы auto&
или, что еще лучше, auto const&
.)
Кстати, основным приемником производительности здесь было бы не просто копирование элементов изнутри x
во временную it
, но для выделения и освобождения памяти используется it
.