¿Cómo se establece la igualdad del iterador STL?

Me preguntaba, ¿cómo se establece la igualdad (==) para los iteradores STL? ¿Es una simple comparación de puntero (y por lo tanto basada en direcciones) o algo más elegante?

Si tengo dos iteradores de dos objetos de lista diferentes y los comparo, ¿el resultado siempre será falso?

¿Qué pasa si comparo un valor válido con uno que está fuera de rango? ¿Eso es siempre falso?

Respuestas a la pregunta(8)

Su respuesta a la pregunta