A menudo, al iterar a través de una cadena (o cualquier objeto enumerable), no solo estamos interesados en el valor actual, sino también en la posición (índice). Para lograr esto mediante el uso de string::iterator
tenemos que mantener un índice separado:¿Cómo puedo iterar a través de una cadena y también conocer el índice (posición actual)?
string str ("Test string");
string::iterator it;
int index = 0;
for (it = str.begin() ; it < str.end(); it++ ,index++)
{
cout << index << *it;
}
Por encima de estilo parece no parece superior a la 'c-estilo'
string str ("Test string");
for (int i = 0 ; i < str.length(); i++)
{
cout << i << str[i] ;
}
En Rubí, podemos obtener tanto el contenido y el índice de una manera elegante:
"hello".split("").each_with_index {|c, i| puts "#{i} , #{c}" }
Así que, ¿cuál es la mejor práctica en C++ para iterar a través de un objeto enumerable y también no perder de vista el índice actual?
un ejemplo sería bueno: P –