Hash [C++] - C++ - Programmation
Marsh Posté le 27-11-2004 à 08:16:46
Bah tu lui passes un argument "taille", et en ligne 6, au lieu de faire
while(*t)
tu fais:
const unsigned char * target =t+taille;
while(target-t)
Pense aussi à changer le prototype pour qu'elle accepte des "const unsigned char *".
Et bien sûr, après ça, tu fais des charmants:
hash(static_cast<const unsigned char *>(&x), sizeof(x));
Marsh Posté le 27-11-2004 à 15:21:45
ahhhh daccord jcomprends maintenant à quoi le second parametre (int) de la fonction hash sert
sinon le cast ca semble pas fonctionner
error: invalid static_cast from type `int*' to type `const unsigned char*'
i est un simple int incrémenter dans un for
hash(static_cast<const unsigned char *> (&i), sizeof(i))
Marsh Posté le 27-11-2004 à 16:03:44
ca semble maintenant fonctionner
ex:
12.11 -> 121651552
12.12 -> 135937056
Code :
|
Code :
|
edit: jai remplacé le while par le tien, ca fonctionne aussi
Marsh Posté le 27-11-2004 à 16:10:33
hum mais le hashing d'un int(1) et int(4096) c'est la meme chose
en gros cette algo semble me sortir que 4096 valeur de hash
Marsh Posté le 27-11-2004 à 16:17:58
bon je tente le coup avec un truc que le prof a expliqué
Code :
|
en gros, c'est que jdois remplir table, mais jtrouve ca un peu bete de bourrer le tout de 256 valeurs à la main, vous trouver pas?
Marsh Posté le 27-11-2004 à 03:14:41
j'ai récupéré sur le net une petite fonction de hashing qui ressemble à ceci:
du coup, elle recoit en param une chaine de caractère
mais si je désirerais hasher un int, un double, ou tout simplement un objet que j'aurais moi même créé, comment serait-ce possible?
Message édité par burgergold le 27-11-2004 à 16:16:51