Quelle est la meilleure structure de données basée sur un dictionnaire (efficace dans le temps et l'espace)? J'ai un grand nombre de chaînes (1 milliard) de taille égale (32 à 64) et je voudrais les stocker dans un dictionnaire afin que je puisse faire le test d'appartenance ensemble.Structure de données efficace basée sur un dictionnaire
0
A
Répondre
0
Utilisez std::map, dans lequel les valeurs key
sont généralement utilisées pour trier et identifier de manière unique les éléments, tandis que les valeurs mappées stockent le contenu associé à cette clé.
Si vous n'avez pas besoin de trier la carte par ses clés, utilisez un std::unordered_map, qui est plus rapide que les conteneurs de carte pour accéder aux éléments individuels à l'aide de leur clé.
Vous pouvez en savoir plus sur map
v/s unordered_map
à this question.
Il est rare d'avoir une structure de données qui est le mieux par les mesures de temps et d'efficacité spatiale. Déterminer le modèle d'utilisation attendu serait une bonne idée ici - par exemple, n'insérez-vous vos clés qu'une seule fois, puis les regardez plusieurs fois, ou ajoutez-vous et supprimez-vous fréquemment des clés, ou les insérez-vous une seule fois les une fois, ou .... – twalberg
Les chaînes sont-elles limitées dans les caractères qu'elles contiennent? (Hexadécimal? Seulement en majuscules?) – 1201ProgramAlarm