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?.
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.
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).
std :: map est comme une Dictionary
.
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"}}