Quelle structure de données est à l'intérieur de std::map en C++?

Je suis débutant et l'apprentissage de C++
Ayant du mal à comprendre std::map concepts, parce que le code, je suis en train de jouer avec implique que le map est un arbre de recherche, c'est à dire tous les noms des std::map objets ont *l'arbre dans les commentaires.

Cependant, après la lecture de ce matériel http://www.cprogramming.com/tutorial/stl/stlmap.html j'ai tendance à penser que les std::map n'a rien à voir avec l'arbre ou de hachage.

Donc je suis confus -- les variables et les commentaires dans le code mentir à moi, ou le sujet est plus complexe, je pense que c'est 🙂

Il n'est pas défini par la norme, mais les exigences de complexité sont des sortes de limiter à cet égard.
Ce que cet article vous conduire à croire que std::map n'a rien à voir avec les arbres?
map est souvent mis en œuvre en utilisant des arbres rouge-noir, tandis que unordered_map est souvent mis en œuvre en utilisant des tables de hachage. Mais le standard n'a pas de mandat beaucoup donc si vous pouvez venir avec d'autres structures de données qui correspondent à la fois fonctionnelle et de la complexité des exigences de la norme C++ alors tout est bien. 🙂
Stroustrup, dans Le Langage de Programmation C++ (4e Édition) déclare "Il est implémenté sous la forme d'un arbre binaire équilibré".

OriginalL'auteur Mark | 2013-08-24