2010-07-17 12 views
4

En Python, il est facile:Comment représenter un dictionnaire comme Python en C

x = {} 
x['USD'] = "Dollars" 
x['CLP'] = "Pesos" 

ou

y = {'lat': 23.678900, 'lng': 121.451928, 'name': "Sin City"} 

Je pense que la plupart de ces types de problèmes ont été résolus, alors où puis-je obtenir des informations sur les dictionnaires en C? Je ne veux pas réinventer la roue.

Comment implémenter un dictionnaire dans C?

+1

Vous voudrez peut-être lire sur les tables de hachage: http://en.wikipedia.org/wiki/Hash_table c'est une structure de données assez importante, et de comprendre comment ils fonctionnent, ainsi que les avantages (et les inconvénients) de l'utilisation l'un est vraiment important et vous donnera une meilleure compréhension des comment et pourquoi du dictionnaire python. – Alan

Répondre

1

Ils sont appelés tables de hachage ou tables de hachage.

Il y a beaucoup de std pour C++.

Voir Simple hash functions

+0

Le lien mène à une URL interdite – KyrSt

+0

@KyrSt voir https://stackoverflow.com/questions/14409466/simple-hash-functions –

+0

Merci, je voulais juste le signaler. – KyrSt

0

Toutes vos questions sont répondues here.

L'idée: utiliser une fonction de hachage en évitant les collisions pour les utiliser comme index.

1

La glibc fournit hcreate, hsearch et hdestroy.

0

Les tables de hachage sont bien. Si vous voulez vous en tenir aux fonctions standard de la bibliothèque C, il y a aussi bsearch qui est bon pour les dictionnaires de recherche constante, ou les dictionnaires dynamiques en conjonction avec qsort.

Questions connexes