IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SL & STL C++ Discussion :

Eliminer les doublons d'un std::vector


Sujet :

SL & STL C++

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2007
    Messages : 20
    Par défaut Eliminer les doublons d'un std::vector
    Hello,



    J'ai dans mon code un std::vector<int> qui contient des doublons, voir même des triblons <== Existe -t-il un moyen (autre que force brute) pour éliminer ces passagers indésirables au sein de mon précieux vecteur ?

    Ensuite pour trier le vecteur en ordre croissant puis-je faire appel à la méthode sort de la stl ?

  2. #2
    Membre émérite
    Avatar de Spout
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2007
    Messages : 904
    Par défaut
    La méthode find_if de la STL te permet de trouver dans ton container s'il y a un objet qui remplit ta condition.
    Par exemple, sur une valeur, tu peux rechercher si, de l'index suivant jusqu'à la fin du container il existe un autre élément avec la même valeur. Auquel cas tu auras la position du premier doublon. Inconvénient : il faut relancer la recherche à chaque fois que tu en élimines un.

    Pour le sort tu peux l'utiliser pour trier ton container.

  3. #3
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut

    Citation Envoyé par Mat26_ Voir le message
    Hello,



    J'ai dans mon code un std::vector<int> qui contient des doublons, voir même des triblons <== Existe -t-il un moyen (autre que force brute) pour éliminer ces passagers indésirables au sein de mon précieux vecteur ?

    Ensuite pour trier le vecteur en ordre croissant puis-je faire appel à la méthode sort de la stl ?
    l'algo unique :
    http://r0d.developpez.com/articles/algos-stl/#LII-C-3

    Sinon tu peut utiliser un std::set.
    Pour le triage ,oui.
    Tu peut regarder aussi les algo de trie:
    http://r0d.developpez.com/articles/algos-stl/#LII-E

  4. #4
    Membre émérite
    Avatar de Spout
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2007
    Messages : 904
    Par défaut
    Citation Envoyé par Mongaulois Voir le message
    Pas mal, je ne connaissais pas. Mais si les doublons ne sont pas adjacents?

  5. #5
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par spoutspout Voir le message
    Pas mal, je ne connaissais pas. Mais si les doublons ne sont pas adjacents?
    oups.
    tu peut le faire en deux temps.
    1- tu applique un trie
    2- tu applique unique

  6. #6
    Membre émérite
    Avatar de Spout
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2007
    Messages : 904
    Par défaut

    Bah oui! Je suis c***

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2007
    Messages : 20
    Par défaut
    Oh yeah => http://r0d.developpez.com/articles/algos-stl/#LII-C-3

    excellent à mettre dans tous les bookmarks ^^

    merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. eliminer les doublons d'un tableau
    Par wided_instm dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 22/09/2006, 10h56
  2. TMemo : eliminer les doublons
    Par delphidebutant dans le forum Delphi
    Réponses: 4
    Dernier message: 28/08/2006, 18h13
  3. [XSL] Eliminer les doublons dans un noeud
    Par Shadow aok dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 13/04/2006, 15h17
  4. Eliminer les doublons dans un tableau d'entiers
    Par engi dans le forum Algorithmes et structures de données
    Réponses: 18
    Dernier message: 21/03/2006, 13h59
  5. Eliminer les doublons d'un tableau de hachage
    Par dreydrey dans le forum Langage
    Réponses: 21
    Dernier message: 15/11/2005, 15h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo