Attualmente utilizzo un iteratore per cercare attraverso un vettore e testarne gli elementi. Accedo gli elementi utilizzandoPosso eseguire aritmetica del puntatore su un STL :: vector :: iterator
std::vector<int>::iterator it;
if (*it == 0);
Posso usare la stessa logica stile aritmetica dei puntatori per testare anche l'elemento successivo (senza alterare il mio iterator)?
ho bisogno di vedere se spingerà l'iteratore fuori limite
if (it != myvec.end())
Poi prova sia elemento corrente e successivo elemento
if (*it == 1 && *(it + 1) == 1)
Sarà questo lavoro mi aspetto di utilizzare puntatori?
Quindi, non posso eseguire operazioni aritmetiche su 'list :: iterator', giusto? – Alcott
@Alcott - corretto. Un list :: iterator è un iteratore bidirezionale e non supporta l'accesso casuale. Puoi usare 'std :: advance' per fare lo spostamento con una singola chiamata, ma la complessità dell'avanzamento è' O (n) 'per le liste (dove sarebbe' O (1) 'per un vettore). –