Inkrement ein iterator c++

Mein problem ist wie folgt: ich verwende einen iterator, und ich möchte vergleichen, die jedes element auf das nächste element. Prototyp sieht wie folgt aus, wie steigere ich den iterator, um vergleichen zu können?
Auch, wie kann ich einstellen, dass ein ordnungsgemäßer Zustand für dieses geschehen? Ich meine, wie-zu-Punkt auf das Letzte element, nicht auf der nächsten nach der zuletzt wie mit end () - Funktion:

std::vector<T>::const_iterator it;
std::vector<T>::const_iterator it2;
for (it = set.begin(), it != set.end(); it++)
{
  //some things happen
  if ( final == it )
  {
     if ( it != set.end()-1 ) //how to write properly condition?
     {
        it2 = it + 1; //how to assign the next here?
        if (...)//some condition
        {
          if ( it->func1() - it2->func1()) < 20 ) //actual comparison of two consecutive element values
            //do something
        }
      }
   }
}
Was ist das problem, das Sie versuchen zu lösen, mit denen mehrere Iteratoren?
Ich verwende bis jetzt nur ein iterator (dies ist nur ein Teil des Codes). Ich möchte in der Lage sein zu vergleichen func1 von zwei aufeinander folgenden in der Gruppe. also brauche ich einen iterator zeigt auf der eigentlichen, ein auf den nächsten. gibt es einen besseren Ansatz? Ich hätte etwas übertrieben hier, bitte korrigiert mich
Siehe meine Antwort zu dieser letzten Frage Wie eine Schleife über aufeinander folgende Paare in einem STL-container?.
für set.end()-1 verwenden set.rbegin()

InformationsquelleAutor berndh | 2013-02-12

Schreibe einen Kommentar