2016-11-29 1 views
0

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

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

+0

Les chaînes sont-elles limitées dans les caractères qu'elles contiennent? (Hexadécimal? Seulement en majuscules?) – 1201ProgramAlarm

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.