La mise en Œuvre interne de la STL::MAP en C++

Je voulais savoir , comment est la MAP disponible en C++ , pas MultiMap juste simple Carte , mis en œuvre en interne .

Ce que je pourrais mieux penser, c'est :

Pour Entier Cartographie : A Balanced Binary Search Tree could be used .

Pour Chaîne Cartographie : Compressed Trie or something similar could be used .

Je suis vraiment curieux de savoir , comment est-il vraiment mis en œuvre dans la STL Carte .Est une certaine fonction de hachage emploi ou est-il quelque chose de totalement différent de ce .

pourquoi ne pas tout simplement à la recherche dans le code source?
Où puis-je le trouver ?
Je crois std::map est souvent mise en œuvre à l'aide d'un Rouge-noir tree et std::unordered_map est un table de Hachage.
depuis elle est un modèle, le code source doit être disponible pour le compilateur. Vous le trouverez dans l'en-tête <map> - où c'est, dépend du compilateur et de l'installation.
Vous ne pouvez pas utiliser le hachage pour map, depuis les touches doivent être commandés. Arbres binaires sont communs; en particulier, la GNU et (je pense) MS implémentations utilisent un rouge-l'arbre noir. Le hachage est utilisé pour unordered_map (ou hash_map, comme il était connu dans la préhistoire de la STL).

OriginalL'auteur Spandan | 2013-07-23