Bonjour, j'aimerai utiliser une hashlist toute faite, autant éviter de refaire ce qui a été déjà fait ;).
Je voudrais savoir si vous connaissiez une librairie qui implémente une hashliste ainsi qu'une liste.
Merci pour vos réponses !
A bientôt !
Version imprimable
Bonjour, j'aimerai utiliser une hashlist toute faite, autant éviter de refaire ce qui a été déjà fait ;).
Je voudrais savoir si vous connaissiez une librairie qui implémente une hashliste ainsi qu'une liste.
Merci pour vos réponses !
A bientôt !
Pas de HashList dans la STL, par contre tu as des hashset et hashmap qui sont GNU il me semble (<ext/hash_map.h>, ....), du moins sous linux.
Ensuite pour les listes, il y en a effectivement dans la STL:
http://www.sgi.com/tech/stl/table_of_contents.html
fait gaffe parce que dans ce lien il y a la STL + des extensions de SGI.Citation:
Envoyé par MatRem
Dans boost il y en a non?
Merci pour les infos :)
Pour la hashlist, je fais un prog pour windows :s, elle existe aussi sous win ?
Merci d'avance, à bientôt !
Ça dépend de quel compilateur/bibliothèque tu utilise. Visual Studio 2005, par exemple, fournit stdex::hash_map et stdex::hash_set.
Note: ça n'a pas trop de sens de parler de hash_list, on parle soit de hash_map, soit de hash_set, soit de hash_table.
J'utilise codeblock, mais c'est vrai que je pourais passer à visual studio ;).
Pour les hash_map ou hash_set, pourais tu m'en dire plus ou me renvoyer sur un site plz :)
Merci, a bientôt !
En fait, que tu utilises un hash_set ou une hash_map, il n'y a qu'une clef.
Dans le cas de la hash_map, une valeur est associée à chaque clef.
Le hashage se fait à partir de la clef.
Pour ta clef triple, rien de t'empêche de définir une structure (ça peut être une classe) personnalisée, et de l'utiliser comme clef, comme expliquée dans le document.
Un exemple:
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 struct Vecteur { Double(double x=0, double y=0, double z=0) :x(x), y(y), z(z) {} virtual ~Double(){} bool operator == (const Vecteur & v2) const { return (x==v2.x && y==v2.y && z==v2.z); } /** Fonction de hashage. */ size_t operator () (const Vecteur & v) const { //Calcul de la valeur de hashage du vecteur qui doit etres differentes //pour chaque instance non ==. Si ce n'est pas possible, il faut trouver //une fonction qui minimise les colisions. } double x; double y; double z; };
Merci, je pense que j'ai tout les éléments pour commencer :)
Si j'ai d'autre questions, je viendrais encore t'ennuyer, lol !
Encore merci et à bientôt !