table de hashage
correspondances entre une chaine clef & une chaine de donnée
ci joint la doc générée par MétaProg
Bibli présentes :
- BHashTable
- BException
- BString
- BVisuel
et évidemment Globals & macros
Source / Exemple :
BIBLIOTHEQUE PERSONNELLE DE FONCTIONS
HashTable
Généré par MétaProg
Documentation générée par MétaProg 5.0.3 (C)
Le 12/08/04
par Magic Nono
______________________________________________________
SOURCE DECRITS
FONCTIONS
I C:\Bruno\perso\Bibli\BHashTable.cpp
I A BHashTable::BHashTable()
I B BHashTable::BHashTable(unsigned int nbFragments)
I C BHashTable::~BHashTable()
I D BHashTable::nv(const BString cle ,const BString& val)
I E BHashTable::get(const BString cle) -> BString*
I F BHashTable::toString() -> BString
______________________________________________________
______________________________________________________
Section Source décrits
Extraite du fichier
C:\Bruno\perso\Bibli\BHashTable.cpp
______________________________________________________
Section Fonctions
______________________________________________________
I C:\Bruno\perso\Bibli\BHashTable.cpp
| Créé le 12/08/04 : par Bruno *****
| Objectif général : table de hashage
| Développé pour : Bibliothèque personnelle de fonctions
| Chemin original : C:\Bruno\perso\Bibli\BHashTable.cpp
| Nota: dans InOut peuvent être repérées des var In : aucun indice formel ne permet de noter le masquage du passage par parametre... ex : f(T i){i++;} a un effet différent si T:int ou \"#define T int&\".
| Nota: dans InOut peuvent être repérées des var In : aucun indice formel ne permet de noter le masquage du passage par parametre... ex : f(T i){i++;} a un effet différent si T:int ou \"#define T int&\".
I A BHashTable::BHashTable()
____________________________________________________________
| Objectif : Constructeur de la classe : BHashTable
| PostCond : Toutes les variables de la classe doivent être instanciées avec une valeur par défaut ou contextuelle
| Nota : constructeur interdit
____________________________________________________________
I B BHashTable::BHashTable(unsigned int nbFragments)
____________________________________________________________
| Objectif : Constructeur de la classe : BHashTable
| PostCond : Toutes les variables de la classe doivent être instanciées avec une valeur par défaut ou contextuelle
____________________________________________________________
| unsigned int nbFragments : nombre de fragments de hashage
____________________________________________________________
I C BHashTable::~BHashTable()
____________________________________________________________
| Objectif : Destructeur de la classe : BHashTable
| PostCond : Toutes les variables de la classe sont détruites
____________________________________________________________
I D BHashTable::nv(const BString cle ,const BString& val)
____________________________________________________________
| Objectif : ajout d'un nouvel élément dans la table de hashage
| PreCond : donnée absente (err signalée)
| PostCond : /
____________________________________________________________
| const BString cle : clef de cet elt
| const BString& val : valeur associée à la clef
____________________________________________________________
I E BHashTable::get(const BString cle) -> BString*
____________________________________________________________
| Objectif : recup de la donnée associée à le clef
| PreCond : donnée déjà présente (exception)
| PostCond : /
____________________________________________________________
| const BString cle : clef de recherche
____________________________________________________________
| retour (BString*) : donnée associée à la clef
____________________________________________________________
I F BHashTable::toString() -> BString
____________________________________________________________
| Objectif : Retourner sous forme textuelle le contenu de la classe
| PreCond : Toutes les variables de ce conténaire doivent être instanciées et les conténaires de données qu'il comporte éventuellement doivent posséder une fonction toString.
| PostCond : /
____________________________________________________________
| retour (BString) : cf.obj
____________________________________________________________
Conclusion :
la fonction de hachage est simple :
je prends les 10 derniers caractères de la clef, j'en fait la somme (valeurs ASCII) et ensuite, un modulo du nombre de fragment est effectué.
ça en vaut n'importe quelle autre
et pour les performances,
ben tout dépend des données, des parametres (nb de fragments) & de votre matériel (vitesse du proc.,.origine des données... )
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.