Variante A:I confronti tra iteratore e const_iterator sono inefficienti?
const auto end = whatever.end();
for (auto it = whatever.begin(); it != end; ++it)
{
// ...
}
Variante B:
const auto end = whatever.cend(); // note the call to cend insteand of end here
for (auto it = whatever.begin(); it != end; ++it)
{
// ...
}
v'è alcuna ragione di credere che la variante B sarà meno efficiente di variante a, dal momento che la condizione del ciclo a confronto due diversi tipi di iteratori? Ciò causa una conversione implicita su it
?
(end
viene utilizzato più volte all'interno del ciclo, quindi il desiderio di issare fuori.)
Per quale contenitore? –
@David Nel mio caso specifico, è un 'std :: string', ma sono curioso in generale. – fredoverflow