Vector Erase : problème

Signaler
Messages postés
278
Date d'inscription
mardi 22 janvier 2002
Statut
Membre
Dernière intervention
29 août 2006
-
Messages postés
278
Date d'inscription
mardi 22 janvier 2002
Statut
Membre
Dernière intervention
29 août 2006
-
Bonjour,
Voilà mon problème, j'utilise un vector pour gérer des aretes d'une figure géométrique, à un moment, je veux supprimer certains éléments dans mon vector, je C pas si C la bonne méthode (C meme surement pas la bonne, mais G trouvé que ça tout seul):

L_A.erase(&L_A[j]);

(évidemment, j est le niveau ou se trouve l'élément de L_A à supprimer)

ça marche tout le temps SAUF pour le dernier élément...
Y a-t-il un moyen d'y remédier? Lequel? Merci!

2 réponses

Messages postés
232
Date d'inscription
vendredi 9 janvier 2004
Statut
Membre
Dernière intervention
8 janvier 2005

salut,

erase pour vector, c'est mauvais algoritmiquement parlant. Utilise list à la place.
Par contre operator[ ] n'existe pas pour list, il faut utiliser un iterator de list ...
la bonne solution dépend de ton algorithme, comme souvent.

pour le dernier élément, je ne vois pas pourquoi ça ne fonctionne pas, mais de toute façon, il faut utiliser pop_back() pour oter le dernier élément.
Messages postés
278
Date d'inscription
mardi 22 janvier 2002
Statut
Membre
Dernière intervention
29 août 2006

Oui, je connais pop_back, mais ce n'est pas ce que je veux.
Voilà ce que je veux faire:
je gère des segments, je veux vérifier si deux segments se coupent, si c'est le cas, je supprimer les deux segments du vector, et j'en rajoute 4 nouveaux.