web-dev-qa-db-fra.com

Les dictionnaires peuvent-ils être utilisés en c ++?

Je cherchais des dictionnaires en C # et ils semblent très utiles. Je me demandais s’il était possible de les utiliser en C++, car j’ai essayé de rechercher des dictionnaires en C++, mais il ne semble pas qu’ils aient un équivalent. peuvent trouver. Existe-t-il une sorte de bibliothèque que je pourrais télécharger et inclure dans le projet ou existe-t-il une fonction qui fait la même chose avec un nom différent?.

15
Elliott

Il existe un type correspondant dans STL, appelé std::map.

Il a les mêmes fonctionnalités de base qu'un dictionnaire .NET, mais sa mise en œuvre est très différente. std::map est basé en interne sur une structure de données arbre rouge-noir, alors que Dictionary utilise une table de hachage en interne.

Si vous cherchez quelque chose qui a le même comportement, std::map fera l'affaire, mais si vous avez beaucoup de données, vous devez connaître les différentes caractéristiques de performance.

16
Anders Abel

Il existe std::map pour le temps d'accès logarithmique (généralement basé sur une implémentation arborescente) et std::unordered_map (depuis C++ 11) pour le temps d'accès linéaire constant et défavorable attendu (généralement basé sur une implémentation de hachage).

8
Angew

std :: map est comme une Dictionary.

6
ForEveR

Nous pouvons utiliser map en C++ Le format de base pour utiliser une carte est - 

    std::map<Key_type, Value_Type> ;

Exemple -

    std::map<std::string,std::string> x = {{"A","ABC"},{"B","DEF"}}
0
Dharmendra Mishra