Incrémenter un itérateur c++

Mon problème est le suivant: j'utilise un itérateur, et je veux comparer chaque élément à l'élément suivant. Prototype ressemble à ci-dessous, comment puis-je augmenter l'itérateur pour pouvoir comparer?
Aussi, comment puis-je définir un état convenable pour que cela arrive? Je veux dire, comment faire le point sur le dernier élément, et non pas sur le côté après le dernier comme avec la fonction end ():

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
        }
      }
   }
}
  • Quel est le problème que vous essayez de résoudre avec ceux de plusieurs itérateurs?
  • J'utilise jusqu'à maintenant, juste un itérateur (c'est juste une partie de code). Je veux être en mesure de comparer func1 de deux années consécutives dans le jeu. j'ai donc besoin d'un itérateur pointant sur le réel, l'un sur l'autre. est-il une meilleure approche? J'ai peut-être fait de certains matraquage ici, corrigez-moi plz
  • Voir ma réponse pour cette dernière question Comment faire une boucle sur consécutifs paires dans un conteneur STL?.
  • pour set.end()-1, utilisez set.rbegin()
InformationsquelleAutor berndh | 2013-02-12