uthash est un hachage pour les structures C, permettant à toute structure de C ayant un champ clé unique qui sera haché.
Les structures peuvent être supprimés, ajoutés ou supprimés de la table de hachage en temps constant. Le champ de clé peut avoir ne importe quel type de données.
Exemple 1. Ajout d'un élément à un hachage.
#include "uthash.h"
struct ma_struct {
int id; / * Touche * /
Nom char [10];
Hh UT_hash_handle; / * Rend cette structure hashable * /
};
struct ma_struct * utilisateurs = NULL;
add_user void (struct ma_struct * s) {
HASH_ADD_INT (utilisateurs, id, s); / * Hachage, clé nom de champ, point * /
}
Exemple 2. En levant les yeux un élément dans une table de hachage.
struct ma_struct * find_user (int user_id) {
struct ma_struct * s;
HASH_FIND_INT (utilisateurs, s, id, & user_id);
retourner s;
}
Exemple 1. Suppression d'un élément d'un hachage.
delete_user void (struct ma_struct * utilisateur) {
HASH_DEL (usagers, utilisateurs); / * Hachage, pointeur vers deletee * /
}
Quoi de neuf dans cette version:
- Un certain nombre de petites améliorations ont été apportées aux services supplémentaires inclus avec uthash, y compris de nouvelles opérations de liste (prepend, remplacer, et le soutien aux structures qui utilisent différentes conventions de nommage), de nouvelles fonctionnalités dynamiques de chaîne (KMP recherche de chaîne, le format de contrôle), les améliorations de compatibilité, et amélioration de la documentation.
Quoi de neuf dans la version 1.9.4:
- Cette version inclut le support pour MurmurHash v3, nouvelle utlist macros de concaténation, recherche utarray binaire, une nouvelle fonctionnalité de utstring, nouvelle documentation, et corrections de bogues.
Ce qui est nouveau dans la version 1.9.3:
- fixer un ifdef pour la compatibilité avec le compilateur Intel (merci , degski!)
- fix HASH_ITER macro pour satisfaire C ++ règles de coulée (grâce, Erik Bai!)
Ce qui est nouveau dans la version 1.8:
- Cette version comprend un nouvel utilitaire d'analyse en direct (pour Linux) pour interroger la taille et la qualité des tables de hachage dans un processus en cours.
- Sont également inclus support pour filtres de Bloom qui peut accélérer de justesse, ré-inclusion de la fonction de hachage MurmurHash et correctifs pour le compagnon liée tête de liste.
Quoi de neuf dans la version 1.7:
- Ce est une version de maintenance. Le Murmurhash ne est plus supporté car il nécessite -fno-strict-aliasing à être utilisé en toute sécurité dans gcc. Correction également un problème avec utlist il observe la règle de aliasing strict et se comporte correctement sous O2 et O3.
Ce qui est nouveau dans la version 1.6:
- Version 1.6 de uthash inclut de nouvelles fonctions de hachage, nouvelle HASH_CLEAR et HASH_SELECT opérations et une liste liée auxiliaire tête utlist.h
Quoi de neuf dans la version 1.5:
- Cette version prend en charge les lecteurs simultanés thread-safe et donne environ 13 % performances hash_find plus rapide.
Ce qui est nouveau dans la version 1.4:
- Cette version comporte C compatibilité ++, une API pour obtenir l'élément compter, une plus grande efficacité de la mémoire, et la compilation pédante propre.
Commentaires non trouvées