62 votes

Est classes hash_map partie de la STL?

Petite question...Est-classes hash_map partie de la STL?

108voto

Lightness Races in Orbit Points 122793

Le TSL a hash_map, mais le C++ de la Bibliothèque Standard n'est pas.

Grâce à une idée répandue, vous pouvez penser de la Norme C++ de la Bibliothèque comme "le TSL", ou des parties de votre toolchains mise en œuvre de la Norme C++ de la Bibliothèque comme "un STL mise en œuvre". Il n'est pas.

C'est aussi une grande honte que les deux MSVC++ et GCC (qui mettent en oeuvre hash_map comme un compilateur spécifique de l'extension), le placer dans l' std d'espace de noms, ce qui est très trompeur. *soupir*

C++11 a introduit std::unordered_map, ce qui n'est pas différent.

18voto

razlebe Points 5181

Citant Wikipédia (italiques ajoutés):

À partir de la STL page:

La STL (Standard Template Library) est une bibliothèque logicielle partiellement inclus dans la Norme C++ de la Bibliothèque.

...et puis, à partir de l' classes hash_map page

Dans le langage de programmation C++, hash_map est le nom d'un haché conteneur associatif dans la Norme Modèle De Bibliothèque. Il est fourni par plusieurs réalisateurs, tels que GNU Compilateur C++ et Microsoft Visual C++. Il ne fait pas partie du C++ La Bibliothèque Standard, mais le C++ Rapport technique 1 contient le très récipient similaire unordered_map, ce qui sera inclus dans le prochain C++0x standard.

Donc, en bref,

  • OUI c'est une partie de la STL.
  • Mais il n'EST PAS partie de la bibliothèque standard.
  • Mais il est soutenu par plusieurs très populaire implémentations.

8voto

nbt Points 15965

Le problème est qu'il n'y a pas de consensus sur le sens du terme STL. Est - hash_map de la partie de la Norme C++? Non, il n'est pas. unordered_map fera partie de la nouvelle norme C++, cependant, et est un plan mis en œuvre à l'aide de hachage.

5voto

Alexandre C. Points 31758

Oui, hash_map fait partie de la STL. Cependant, il n'est pas partie du C++03 de la bibliothèque standard.

2voto

user3646956 Points 1

classes hash_map est une partie de la STL, mais une partie du Standard C++(C++11). Et il est similaire de la mise en œuvre des classes hash_map nommé "std::unordered_map" dans la norme C++: http://www.cplusplus.com/reference/unordered_map/unordered_map/

Actuellement, GNU C++ et MSVC++ ont mis en œuvre des classes hash_map pour le compilateur de l'extension, ainsi que de Stimuler. Pendant ce temps, SGI a sa propre mise en œuvre pour les classes hash_map. Vous pouvez vous référer à http://www.sgi.com/tech/stl/hash_map.html pour plus de détails.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X