Différence de performance entre la carte et unordered_map en c++

J'ai une simple exigence, j'ai besoin d'une carte de type . cependant j'ai besoin le plus rapide possible, en théorie, temps de récupération.

j'ai utilisé à la fois la carte et le nouveau projet de unordered_map de tr1
j'ai trouvé qu'au moins lors de l'analyse d'un fichier et la création de la carte, par l'insertion d'un élément à la fois.

carte n'a pris que 2 minutes, tout en unordered_map a pris 5 minutes.

Que je c'est faire partie d'un code destiné à être exécuté sur un cluster Hadoop et contiendra ~100 millions d'entrées, j'ai besoin de plus possible la durée de récupération.

Également une autre information utile:
actuellement les données (clés) qui est insérée est la gamme de nombres entiers compris entre 1,2,... à ~10 millions de dollars.

Je peut également imposer à l'utilisateur de spécifier la valeur maximum et d'utiliser la commande comme ci-dessus, est-ce que de manière significative l'effet de mon application? (j'ai entendu parler de la carte est basée sur rb arbres et de l'insertion dans l'ordre croissant conduit à une meilleure performance (ou pire?) )

voici le code

map<int,int> Label //this is being changed to unordered_map  
fstream LabelFile("Labels.txt");  


//Creating the map from the Label.txt  
if (LabelFile.is_open())  
{  
    while (! LabelFile.eof() )  
    {             
        getline (LabelFile,inputLine);  
        try  
        {  
            curnode=inputLine.substr(0,inputLine.find_first_of("\t"));  
            nodelabel=inputLine.substr(inputLine.find_first_of("\t")+1,inputLine.size()-1);  
            Label[atoi(curnode.c_str())]=atoi(nodelabel.c_str());  
        }  
        catch(char* strerr)  
        {  
            failed=true;  
            break;  
        }  
    }  
    LabelFile.close(); 
}

Tentative de Solution: Après l'examen des commentaires et des réponses, je crois, une Dynamique en C++ tableau serait la meilleure option, car la mise en œuvre permettra d'utiliser dense clés. Grâce

InformationsquelleAutor | 2010-02-28