Je cherche actuellement une meilleure alternative à STD :: Carte et rencontrez des cours mentionnés dans le titre Post. Quelqu'un pourrait-il clarifier les différences entre eux, pas en termes de performance / API, mais en ce qui concerne l'endroit où ils se rapportent par rapport à la norme actuelle et fadecomnig. P>
3 Réponses :
Les en-têtes de
Si vous le pouvez, utilisez STD :: Unorded_map car il s'agit du nom final de la mise en œuvre de la carte de hachage (si vous avez besoin d'une carte de hachage). Les autres noms sont là au cas où votre compilateur leur fournit, mais dans un espace de noms séparé (comme C ++ 0x n'est pas encore disponible officiellement). p>
Il y a boost :: Unommanded_map aussi au fait, mais c'est presque la même idée et interface. P>
Si proche. L'ext :: Unorded_map pourrait être n'importe quoi et est totalement indépendant pour le STD. Il peut ne pas être la même interface, qui serait très important pour toute personne intéressée à maintenir le code client prêt pour la nouvelle norme au lieu de vous adapter à une mise en œuvre particulière. En outre, l'espace de noms TR1 est l'endroit où ONUORDED_MAP existe dans TR1, pas StD :: Espace de noms. Certaines des choses de TR1 sont différentes de celles qui finiront par être libérées dans le STD. Depuis que le STD n'existe pas encore, il est difficile de dire ce que le STD :: Unommanded_map est en fait par rapport à cette STD, s'il y a une diff.
Ceci sera utilisé dans une bibliothèque de sorte quelle (s) macro (s) servirait à se protéger de l'utilisation de STD :: Unorded_map d'être incorrectement incluse où STD :: La carte doit être utilisée?
Quels compilateurs qui ont publié de nouvelles choses dans la STD :: Les espaces de noms ont fait, c'est essayer d'anticiper ce que ces nouvelles choses ressembleront. D'une certaine manière, ils se trompèrent, dans d'autres, ils auront raison. Les chances de non-ordonné étant changées ne sont pas grandes mais d'autres choses déjà ont depuis, par exemple, MSVC a été publiée.
@user - Il n'y a aucune chance de mélanger la carte et le non-ordonné_map. Ils sont totalement différents, dans différents en-têtes, etc ... vous devrez essayer de les confondre vraiment.
Noah Roberts> Je n'ai pas fait clairement, mais c'est ce que je voulais dire pour ext :: Unorded_map. Je modifierai l'explication.
@Noah: désolé, j'ai oublié
Si vous parlez de l'EXT / ONUORKED_MAP, il s'agit de l'ancien composant SGI / HP STL. Il est très similaire à l'autre ONUPERED_MAPS. J'utiliserais std :: Unommanded_map comme composant standard - c'est l'avenir. P>
Je comprends que les anciens conteneurs de hachage SGI / HP ont à peine manqué d'être inclus dans la norme C ++ 98 pour une raison quelconque. P>