Wie kann ich durch einen String iterieren und kenne den Index (aktuelle Position)?

Oft beim iterieren durch eine Zeichenkette (oder jede aufzählbare Objekt), wir sind nicht nur daran interessiert, den aktuellen Wert, sondern auch die position (index). Um dies zu erreichen, indem Sie mit string::iterator wir pflegen einen separaten index:

  string str ("Test string");
  string::iterator it;
  int index = 0;
  for ( it = str.begin() ; it < str.end(); it++ ,index++)
  {
         cout << index << *it;
  }

Oben Stil scheint nicht scheinen, überlegen die 'c-style'

  string str ("Test string");
  for ( int i = 0 ; i < str.length(); i++)
  {
         cout << i << str[i] ;
  }

In Ruby können wir sowohl Inhalt und index in einer eleganten Art und Weise:

  "hello".split("").each_with_index {|c, i| puts "#{i} , #{c}" }

Also, was ist die beste Praxis in C++ - Durchlaufen ein aufzählbares Objekt und behalten auch die übersicht über den aktuellen index?

InformationsquelleAutor der Frage pierrotlefou | 2009-08-22

Schreibe einen Kommentar