[Dcmlib] Essai sur les table de hashage

Emmanuel Olart eolart at theralys.com
Tue May 28 16:45:28 CEST 2002


Hum je vais regarder ca.

Je me souviens avoir utilise des implementations de HashTable qui
permettaient un parcour des clés de maniere triee
Je vais recontacter un ami avec qui je l'ai fait.

Sinon , ce parcours trié permet de simplifier certaines fonctions, mais
n'est pas obligatoire. Si nous ne pouvons pas le faire, je pense que nous
nous en passerons sans grand mal

Emmanuel
______________________________________________
Emmanuel OLART, Eng.
THERALYS
Diagnostic & Therapeutic Image Analysis in Clinical Trials
Address : 29 rue Bellecombe, 69006, LYON, FRANCE
Phone : (33).6.63.01.52.36
Fax : (33).4.72.35.72.91
Email : olart at theralys.com

----- Original Message -----
From: "Eric Boix" <frog at creatis.insa-lyon.fr>
To: <dcmlib at tux.creatis.insa-lyon.fr>
Sent: Tuesday, May 28, 2002 5:13 PM
Subject: [Dcmlib] Essai sur les table de hashage


> Salut,
>
> Il semblerait que nous devions faire un usage intensif des
> tables de hashage. Les specifs actuelles (faites sur un coin de table
> lors de la derniere reunion) sont:
>   * un tableau associatif
>   * clef unique (je ne suis pas tout a fait certain de cela).
>   * trie' (sur les clefs)
>   * avec les methodes de traverse'e first(), next(), last...
>
> Il existe bien sur des choses dans la STL et apres une premiere lecture
> du chapitre 3.3 de
>     http://www.sgi.com/tech/stl/table_of_contents.html
> ce qu'il nous faudrait est donc un "Unique Sorted Associative Container"
> i.e. soit un <set> soit un <map>.
>
> Toujours en premier lecture, il semblerait que l'on ne puis PAS ajouter
> a nos contraintes que l'implementation soit fait sous forme de table de
> hashage (pour des raisons de complexite' algorithmique et non de
> fonctionalite') sans perdre l'ordre (Sorted) des clefs.
> Autrement dit un Unique Hashed Associative Container n'est pas sorted.
> Ajoutez a cela que les templates correspondants a cela (i.e. <hash_set> et
> <hash_map>) n'existent pas nativement dans VC++6.0 (pfff)...
>
> Ma conclusion partielle est qu'il faut pendre un <map>. Voici un
> bout de code (aussi en attachement) qui compile et linke avec la commande
>    "g++ hashtest.cxx"
> sous linux...
>
>
> #include <map>
> #include <string>
> #include <iostream>
>
> int main()
> {
>   typedef map<string, char*> dict;
>
>   dict current;
>   current["00100010"] = "Patient Name";
>   current["7fe00010"] = "Pixel Data";
>   current["50000010"] = "Number of points";
>   current["00380010"] = "Admission ID";
>
>    cout << "Traversal of dictionary (note the proper ordering on key)." <<
endl;   for ( dict::iterator im = current.begin(); im != current.end();
++im )
>       cout << "   \"" << im->first << "\" = " << im->second << endl;
>    cout << "End of dictionary." << endl;
>
>    cout << "Find request on key 00380010" << endl;
>    dict::iterator im = current.find("00380010");
>    cout << "   \"" << im->first << "\" = " << im->second << endl;
> }
>
>
> So ?
> Frog.
>
>





More information about the Dcmlib mailing list