Librairie STD:enlever un élément d'un vector [Résolu]

Messages postés
52
Date d'inscription
jeudi 16 juin 2005
Dernière intervention
5 juin 2007
- - Dernière réponse : Hylvenir
Messages postés
364
Date d'inscription
mercredi 11 février 2004
Dernière intervention
5 octobre 2006
- 12 mai 2006 à 08:32
Bonjour,
je cherche le moyen d'enlever un élément d'un vector dans les librairies STD.
Je veux par exemple enlever le 3ième élément. Je suppose qu'il existe une méthode.
Merci d'avance
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
364
Date d'inscription
mercredi 11 février 2004
Dernière intervention
5 octobre 2006
3
Merci
Salut,
en effet pas très efficace de supprimer au milieu d'un vector,
mais si tu veux garder l'ordre de ton tableau, tu peux utiliser vector::erase par exemple

vector v;
// populate v
v.erase( v.begin() + 3 );

mais bon faut vraiment le vouloir.
Pour un traitement par "lot" tu peux utiliser std::remove

//Ma participation à la saturation du net:
http://hylvenir.free.fr

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 95 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Hylvenir
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Dernière intervention
28 juillet 2008
0
Merci
Un vector est un tableau donc enlever un element, c'est pas terrible.
Enfin, ce qui se fait, c'est de remplacer le 3eme élement par le
dernier "ton_vector.back()" puis de supprimer le dernier element :
"ton_vector.pop_back".
Commenter la réponse de luhtor
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Dernière intervention
28 juillet 2008
0
Merci
Oui si tu veux, mais en interne, il doit tout décaler. Donc ca ne doit
pas etre efficace comme fonction. Enfin ca dépend dans quel contexte tu
en as besoin.
Commenter la réponse de luhtor
Messages postés
364
Date d'inscription
mercredi 11 février 2004
Dernière intervention
5 octobre 2006
0
Merci
Oui, c'était ce que je voulais dire, et j'étais d'accord avec toi.
Le contexte est important (imagine un vector trié utilisé avec un binary_search par exemple). Mais en effet, le vector ne sont pas fait pour être "taillé" par un autre endroit que la fin. (un deque devrait mieux convenir, ou une liste si [] n'est pas nécessaire)
Commenter la réponse de Hylvenir

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.