Supposons que j'ai une liste dans laquelle aucun nouveau noeud n'est ajouté ou supprimé. Cependant, les nœuds peuvent être mélangés.Coffre-fort pour stocker la liste :: itérateur pour une utilisation ultérieure?
Est-il sécuritaire d'enregistrer un itérateur, en pointant sur un nœud de la liste, et d'y accéder arbitrairement plus tard?
Édition (question de suivi): La documentation de list :: splice() indique qu'elle supprime des éléments de la liste d'arguments. Cela signifie-t-il que si j'appelle splice, en utilisant la même liste que les arguments de la fonction, les itérateurs existants seront invalidés?
Il n'y a aucune garantie qu'un itérateur est un pointeur. En fait, vous pouvez probablement vous assurer qu'un std :: list <> :: iterator n'est pas un pointeur car il doit effectuer un traitement intelligent pour toutes les opérations de l'itérateur (comme ++) –