Вариант А:
const auto end = whatever.end();
for (auto it = whatever.begin(); it != end; ++it)
{
//...
}
Вариант б:
const auto end = whatever.cend(); // note the call to cend insteand of end here
for (auto it = whatever.begin(); it != end; ++it)
{
//...
}
Есть ли основания полагать, что вариант b будет менее эффективным, чем вариант a, поскольку условие цикла сравнивает два разных типа итераторов? Вызывает ли это неявное преобразование it
?
(end
используется несколько раз внутри цикла for, поэтому я хочу поднять его.)