Supongamos que tengo una lista en la que no se agregan o eliminan nodos nuevos. Sin embargo, los nodos pueden barajarse.Caja fuerte para almacenar list :: iterator para uso posterior?
¿Es seguro guardar un iterador, señalar un nodo en la lista y acceder a él en algún momento arbitrariamente?
Editar (pregunta de seguimiento): La documentación para list :: splice() dice que elimina elementos de la lista de argumentos. ¿Esto significa que si llamo a empalme, usando la misma lista como argumentos para la función, los iteradores existentes serán invalidados?
No hay garantía de que un iterador sea un puntero. De hecho, es probable que pueda beneficiarse de que std :: list <> :: iterator no sea un puntero, ya que necesita un procesamiento inteligente para todas las operaciones de los iteradores (como ++) –