Fonction de hashage hash_map

Sk8yo Messages postés 27 Date d'inscription mardi 20 mai 2003 Statut Membre Dernière intervention 16 octobre 2006 - 16 oct. 2006 à 09:40
Sk8yo Messages postés 27 Date d'inscription mardi 20 mai 2003 Statut Membre Dernière intervention 16 octobre 2006 - 16 oct. 2006 à 23:34
bonjour,

voila mon probleme :
j'ai une structure hash_map (STL) pour laquelle j'ai besoin de créer une fonction de hashage perso.
J'ai cherché un peu partout mais il semblerai que le retour de cette fonction doivent etre de type "size_t". n'y a-t il pas un moyen de renvoyer autre chose que hash_map utiliserai pour indexer ses elements? comme un entier par exemple?

Merci

5 réponses

luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
16 oct. 2006 à 13:13
C'est un type template que tu définis comme tu veux:

std::hast_map


Mais je comprend pas ce que tu dis, tu parle du retour d'une fonction mais laquelle ?
0
Sk8yo Messages postés 27 Date d'inscription mardi 20 mai 2003 Statut Membre Dernière intervention 16 octobre 2006
16 oct. 2006 à 14:43
le principe du hash_map je comprend. mais lorque l'on donne un type de clé different des type courant du genre int,char*... il faut ecrire sa propre fonction de hashage.
et celle-ci doit apparemment renvoyer un size_t
0
Sk8yo Messages postés 27 Date d'inscription mardi 20 mai 2003 Statut Membre Dernière intervention 16 octobre 2006
16 oct. 2006 à 14:50
pour cela il faut le preciser lors de l instanciation std::hash_map<  cle , valeur , maFctHash>
0
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
16 oct. 2006 à 20:21
Non, je crois pas. Ya pas besoin de définir de fonction particulière.

Par défault, il doit utiliser std::less<key_type> et pour les types classiques, ya pas de pb.


ET pk tu dis "apparemment renvoyer un size_t" ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Sk8yo Messages postés 27 Date d'inscription mardi 20 mai 2003 Statut Membre Dernière intervention 16 octobre 2006
16 oct. 2006 à 23:34
pour des detail precis ::
http://www.sgi.com/tech/stl/hash_map.html.

sinon quand tu veux utiliser une clé qui a un type (une classe) que tu a crée toi, la plupart du temps (et c mon cas) tu peux definir ta propre fonction de hashage
le probleme etant que cette fonction (d apres le lien ci-dessus) doit renvoyer un type size_t, ce qui n est pas pratique du tout.
Alors ma question etait de savoir s'il n'y avais pas moyen d'utiliser un autre type de retour genre int.
0
Rejoignez-nous