Les Snippets

Connexion

Supprimer les doublons d'un tableau de chaines

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 07/07/2008 08:23:59 et initié par PCPT [Liste]
Vue : 2827
Catégorie(s) : Chaîne de caractères
Langage sélectionné : C++
Langages dispo pour ce code :
- VB6, VBA
- PHP 5
- C++
- C# 2.x, C# 3.x
- VB 2005, VB 2008
- Voir tous les langages pour ce code snippet



Langage : C++
Date ajout : 22/07/2008
Posté par buno [Liste]
int removeDoublon(vector<string> & liste)
{
    int cpt=0;
    bool bFound=false;
    vector<string> final;
    vector<string>::iterator iterListe, iterFinal;
    // Test de la validité de la liste
    if (liste.empty())
        return cpt;
    // Init de la liste résultat
    final.push_back(*liste.begin());
    for (iterListe=liste.begin()+1; iterListe!=liste.end(); iterListe++)
    {
        // Recherche si ce n'est pas un doublon
        bFound=false;
        for (iterFinal=final.begin(); iterFinal!=final.end() && !bFound; iterFinal++)
        {
            if (0==iterListe->compare(*iterFinal))
            {
                // C'est un doublon, on passe à la chaîne suivante
                cpt++;
                bFound=true;
            }
        }
        if (!bFound)
        {
            // Ce n'est pas un doublon, on l'ajoute à la liste finale
            final.push_back(*iterListe);
        }
    }
    liste=final;
    return cpt;
}

//////////////////////////
// Exemple d'utilisation
//////////////////////////
vector<string>::iterator iter;
vector<string> liste;
liste.push_back("coucou");
liste.push_back("couCou");
liste.push_back("SALUT");
liste.push_back("sAlut");
liste.push_back("coucouuu");
liste.push_back("");
liste.push_back("coucou");
liste.push_back("coucou");
liste.push_back("SALUT");
liste.push_back("SALUTE");
for (iter=liste.begin(); iter!=liste.end(); iter++)
    cout << *iter << " ";
cout << endl;
int cpt=removeDoublon(liste);
cout << cpt << " doublons enleves: ";
for (iter=liste.begin(); iter!=liste.end(); iter++)
    cout << *iter << " ";
cout << endl;

Remarque :
Le test est "case sensitive":
coucou et couCou ne sont pas des doublons

Snippets en rapport avec : Tableau, Supprimer, Doublons, Chaines



Codes sources en rapport avec : Tableau, Supprimer, Doublons, Chaines

{Visual Basic, VB6, VB.NET, VB 2005} COMPRESSION
Fonction pour comprimer un tableau de byte...

{C / C++ / C++.NET} SUPPRIMER MERCI
Merci de supprimer Merci de supprimer Merci de supprimer Merci de supprimer Merci de supprimer ...

{Visual Basic, VB6, VB.NET, VB 2005} SUPPRIMER UN ÉLÉMENT D'UN TABLEAU
Lorsque vous créez des tableaux dynamiques en VB, vous serez peut-être ammenés à avoir besoin de sup...

{Visual Basic, VB6, VB.NET, VB 2005} TABLEAU INITIALISE
Je cherche une fonction me permettant de savoir si mes tableaux dynamiques [ ex: dim Tableau() as st...

{Visual Basic, VB6, VB.NET, VB 2005} GESTION DYNAMIQUE DES ITEMS - BIEN PLUS INTERESSANT QUE LES TABLEAUX DYNAMIQUES
Tout le monde a recours dans la programmation à des tableaux dynamiques, besoin de validation de val...

{SQL} SUPPRESSION DE DOUBLONS
C'est une suite de requêtes qui permettent de supprimer les doublons d'une table. Il y en a d'autre ...

{Delphi} COMPRENDRE UN PEU PLUS LES TABLEAUX EN RXRICHEDIT
Ce petit programme me sert d'appui pour comprendre étudier tout ce que je peut faire avec un tableau...

{Delphi} NETTOYAGE AUTOMATIQUE DE NOMS DE FICHIERS
Comme le titre l'indique, il s'agit ici de nettoyer des noms de fichiers pour aller à l'essentiel .....

{Delphi} STRINGGRID EXTENDED
Tableau 'StringGrid' élaboré contenant des fonctions étendues copier/coller/effacer, des fonctions d...

{PHP} FICHIER XML => TABLEAU ASSOCIATIF
Tous petit bout de code qui lit un fichier .xml et qui le stock dans un tableau de tableau associati...