Вариант a:
const auto end = whatever.end();
for (auto it = whatever.begin(); it != end; ++it)
{
// ...
}
Вариант b:
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, следовательно, мое желание вытащить его.)