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

tomalille 52 Messages postés jeudi 16 juin 2005Date d'inscription 5 juin 2007 Dernière intervention - 11 mai 2006 à 15:59 - Dernière réponse : Hylvenir 364 Messages postés mercredi 11 février 2004Date d'inscription 5 octobre 2006 Dernière intervention
- 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
Hylvenir 364 Messages postés mercredi 11 février 2004Date d'inscription 5 octobre 2006 Dernière intervention - 11 mai 2006 à 23:17
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

Merci Hylvenir 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 124 internautes ce mois-ci

Commenter la réponse de Hylvenir
luhtor 2023 Messages postés mardi 24 septembre 2002Date d'inscription 28 juillet 2008 Dernière intervention - 11 mai 2006 à 18:12
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
luhtor 2023 Messages postés mardi 24 septembre 2002Date d'inscription 28 juillet 2008 Dernière intervention - 12 mai 2006 à 00:27
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
Hylvenir 364 Messages postés mercredi 11 février 2004Date d'inscription 5 octobre 2006 Dernière intervention - 12 mai 2006 à 08:32
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.