Vector Erase : problème

Clonk Messages postés 278 Date d'inscription mardi 22 janvier 2002 Statut Membre Dernière intervention 29 août 2006 - 14 nov. 2004 à 02:08
Clonk Messages postés 278 Date d'inscription mardi 22 janvier 2002 Statut Membre Dernière intervention 29 août 2006 - 14 nov. 2004 à 11:11
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!
A voir également:

2 réponses

plus_plus_fab Messages postés 232 Date d'inscription vendredi 9 janvier 2004 Statut Membre Dernière intervention 8 janvier 2005
14 nov. 2004 à 02:59
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.
0
Clonk Messages postés 278 Date d'inscription mardi 22 janvier 2002 Statut Membre Dernière intervention 29 août 2006
14 nov. 2004 à 11:11
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.
0
Rejoignez-nous