Często podczas iteracji przez ciąg (lub dowolny obiekt przeliczalny) nie jesteśmy zainteresowani jedynie bieżącą wartością, ale także pozycją (indeksem). Aby to osiągnąć za pomocą string::iterator
musimy utrzymać oddzielny indeks:Jak mogę iterować przez ciąg znaków i znać indeks (aktualna pozycja)?
string str ("Test string");
string::iterator it;
int index = 0;
for (it = str.begin() ; it < str.end(); it++ ,index++)
{
cout << index << *it;
}
Przede styl wydaje się nie wydaje się lepsza od 'c-style'
string str ("Test string");
for (int i = 0 ; i < str.length(); i++)
{
cout << i << str[i] ;
}
w Ruby, możemy uzyskać zarówno treść i wskaźnik w elegancki sposób:
"hello".split("").each_with_index {|c, i| puts "#{i} , #{c}" }
Więc, co to jest najlepsze praktyki w C++ do iteracji przez przeliczalnego obiektu, a także śledzenie aktualnego indeksu?
przykład byłby miły: P –