Suppression de doublons dans un vecteur de chaînes de caractères

J'ai un vecteur de chaînes de caractères:

std::vector<std::string> fName

qui contient une liste de noms de fichiers <a,b,c,d,a,e,e,d,b>.

Je veux me débarrasser de tous les fichiers qui ont des doublons et que vous voulez conserver uniquement les fichiers qui n'ont pas de doublons dans le vecteur.

for(size_t l = 0; l < fName.size(); l++)
{
    strFile = fName.at(l);
    for(size_t k = 1; k < fName.size(); k++)
    {
        strFile2 = fName.at(k);
        if(strFile.compare(strFile2) == 0)
        {
            fName.erase(fName.begin() + l);
            fName.erase(fName.begin() + k);
        }
    }
}

Ce est de retirer un peu de la double, mais a encore un peu de doublons gauche, besoin d'aide au débogage.

Aussi mon entrée ressemble à <a,b,c,d,e,e,d,c,a> et ma sortie attendue est <b> comme tous les autres fichiers b,c,d,e ont des doublons, ils sont retirés.

Voulez-vous de garder une copie des doublons? I. e. voulez-vous <a,b,c,d,e>, ou tout simplement <c>?
Je ne veux pas garder la copie de dupilcates.

OriginalL'auteur Deepak B | 2012-02-11