¿es posible buscar el siguiente elemento en un contenedor al que apunta el iterador sin cambiar el iterador?Examinar el siguiente elemento en el contenedor STL
Por ejemplo, en std :: set,
int myArray[]= {1,2,3,4};
set <int> mySet(myArray, myArray+4);
set <int>::iterator iter = mySet.begin();
//peek the next element in set without changing iterator.
mySet.erase(iter); //erase the element if next element is n+1
¿Por qué no hacer una copia y adelantar que uno? ¡Asegúrate de verificar si cualquiera de los iteradores es igual a '.end()' antes de continuar! – GManNickG
Creo que estaba confundiendo el iterador con un puntero. cuando asigna un puntero a un puntero, ambos cambiarán si un puntero cambia pero ¿por qué no ocurre en el caso de un iterador? – user963241
@GMan: Boost tiene las funciones 'prior' y' next' para hacer justamente eso (toma el iterador por valor, haciendo una copia como sugeriste). Ver http://www.boost.org/libs/utility/utility.htm para más detalles. –