Duplicar posible:
Why use iterators instead of array indices?¿Por qué usar string :: iterator en lugar de index?
string::iterator it;
for (it = str.begin(); it < str.end(); it++)
cout << *it;
cout << endl;
Por qué no:
for (int i = 0; i < str.size(); i++)
cout << str[i];
cout << endl;
Parece que la cadena :: iterador no proporciona prueba de alcance tampoco. ¿Por qué deberíamos usar string::iterator
en lugar de índice?
Gracias.
La pregunta es por qué ¿No usarías 'cout << str << endl;'. – avakar
@jcyang: aparte de las respuestas de los demás, asegúrese de crear el hábito de usar preincremento con iteradores en bucles. es decir, usar ++ it y no lo ++. El pre-incremento no creará temporales temporales innecesarios. – Jagannath
Además del comentario de Jagannath, prefiera 'operator! =()' Sobre 'operator <()' al comparar un iterador con 'end()'. – jason