Actuellement, j'utilise un itérateur pour rechercher un vecteur et tester ses éléments. J'accéder aux éléments à l'aidePuis-je faire de l'arithmétique de pointeur sur un STL :: vector :: itérateur
std::vector<int>::iterator it;
if (*it == 0);
Puis-je utiliser la même logique de style arithmétique de pointeur pour tester également l'élément suivant (sans altérer ma iterator)?
Je dois d'abord voir si elle va pousser le iterator hors des limites
if (it != myvec.end())
Ensuite, testez les deux élément courant et élément suivant
if (*it == 1 && *(it + 1) == 1)
ce travail que j'attendre de l'utilisation des pointeurs?
Donc, je ne peux pas faire d'opération arithmétique sur 'list :: itérateur', non? – Alcott
@Alcott - correct. Un list :: iterator est un itérateur bidirectionnel et ne supporte pas l'accès aléatoire. Vous pouvez utiliser 'std :: advance' pour faire le déplacement avec un seul appel mais la complexité de l'avance est' O (n) 'pour les listes (où ce serait' O (1) 'pour un vecteur). –