¿En C++, “const_iterator” es lo mismo que “const iterator”?
¿Es un const_iterator lo mismo que un const iterator? Si no lo es, ¿cuál es la diferencia? Si es así, ¿por qué utiliza el estándar const_iterator cuando const iterator ya tiene significado?
Por ejemplo, ¿son exactamente iguales estas dos declaraciones?
string& replace (const_iterator i1, const_iterator i2, const string& str);
string& replace (const iterator i1, const iterator i2, const string& str);
davy.ai
No, son diferentes.
const_iterator
es un tipo de iterador que se declara como constante, lo que significa que no se puede modificar.const iterator
es un iterador que apunta a un objeto constante, lo que significa que el objeto al que apunta no se puede modificar.El estándar utiliza
const_iterator
para dejar claro que el iterador en sí es constante, en lugar del objeto al que apunta.