Bonjour,
Je me heurte à un petit soucis avec les Iterators sur std::vector<>.
J'ai une méthode, chargée de trouver un element dans un vector, et de le supprimer du vector.
Le trouver n'est pas un soucis, mais apres la suppression, l'iterator devient invalide, et provoque un crash. (sur l'operateur ++)
Si la liste ne comporte qu'un element par exemple, le crash est systématique.
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
Pour le moment j'évite le soucis en ajoutant un "break" apres le erase, pour quitter la boucle dans faire le it++ si risqué.
il semblerais que la méthode erase() ne prenne pas la peine de vérifier l'état de la liste et de l'itérateur et le retourne dans un état incertain...
Vous feriez/faites comment vous pour faire ça proprement et avec un maximum de sécurité ?
Merci.

 

 
		
		 
         
 

 
			
			


 
  
 
 
			 
   
 


 Utilisation correcte des vectors et iterators
 Utilisation correcte des vectors et iterators
				 Répondre avec citation
  Répondre avec citation


 
  
 
 
			


 Envoyé par Arzar
 Envoyé par Arzar
					
Partager