Bonjour,
J'ai codé une liste avec un itérateur du même style que dans la STL.
Mon problème est que la liste peut donner plusieurs itérateurs et que cela peut rendre la liste non cohérente. Ainsi, Si l'utilisateur demande un premier itérateur sur la première cellule de la liste, puis qu'il en demande un deuxième et qu'il s'en sert pour supprimer la première cellule, le premier itérateur ne saura pas qu'il est sur une cellule qui ne fait plus partie de liste et rendra la liste non cohérente si il y touche.
Avez vous une solution à me proposer pour éviter cela?
Une solution serait de modifier les itérateurs d'une liste si un autre itérateur a touché à la cellule sur laquelle ils pointent, mais le programme ne serait pas au courant de leur modification, ce qui est moyen.
Une autre solution serait d'empecher une liste d'avoir plusieurs itérateurs, mais c'est contraignant.
Une autre solution serait de mettre un flag "EstBloquée" et un "NombreItérateur" sur chaque cellule: une cellule serait bloquée si et seulement si elle a au moins un itérateur sur elle et ne pourrait alors être supprimée.
Je n'ai pas trouvé la solution parfaite
Merci de vos conseils!
Partager