uthash is een hash voor C structuren, waardoor elke C structuur met een unieke sleutel veld te hash.
Structuren kunnen worden verwijderd, toegevoegd of verwijderd uit de hash in constante tijd. De sleutel veld kan elk type gegevens.
Voorbeeld 1. Het toevoegen van een item aan een hash.
#include "uthash.h"
struct my_struct {
int id; / Toets * * /
char naam [10];
UT_hash_handle hh; / * Maakt deze structuur hashbaar * /
};
struct my_struct * gebruikers = NULL;
leegte add_user (struct my_struct * s) {
HASH_ADD_INT (gebruikers, id, s); / * Hash, sleutel veldnaam, punt * /
}
Voorbeeld 2. Het opzoeken van een item in een hash.
struct my_struct * find_user (int user_id) {
struct my_struct * s;
HASH_FIND_INT (gebruikers, s, id, en user_id);
komt terug;
}
Voorbeeld 1. Een item verwijderen uit een hash.
leegte DELETE_USER (struct my_struct * gebruiker) {
HASH_DEL (gebruikers, gebruiker); / * Hash, pointer naar deletee * /
}
Wat is nieuw in deze release:
- Een aantal kleine verbeteringen werden aangebracht aan de aanvullende hulpprogramma's die bij uthash, inclusief nieuwe lijst operaties (prepend, vervangen, en ondersteuning voor structuren die verschillende naamgeving conventies te gebruiken), nieuwe dynamische reeks functies (KMP tweede zoekopdracht, formaat controleren), verbeteringen compatibiliteit en verbeterde documentatie.
Wat is nieuw in versie 1.9.4:
- Deze versie bevat ondersteuning voor MurmurHash v3, nieuwe utlist aaneenschakeling macro's, utarray binair zoeken, nieuwe utstring functionaliteit, nieuwe documentatie en bugfixes.
Wat is nieuw in versie 1.9.3:
- stelt een ifdef voor compatibiliteit met Intel compiler (bedankt , degski!)
- fix HASH_ITER macro naar C voldoen ++ casting regels (met dank, Erik Bai!)
Wat is nieuw in versie 1.8:
- Deze versie bevat een nieuwe live-analyse tool (voor Linux) om de grootte en de kwaliteit van hash tabellen te vragen in een lopend proces.
- Ook inbegrepen zijn ondersteuning voor Bloom filters die kunnen versnellen missers, re-integratie van de MurmurHash hash-functie, en fixes aan de metgezel gelinkte lijst header.
Wat is nieuw in versie 1.7:
- Dit is een maintenance release. De Murmurhash wordt niet meer ondersteund, omdat het vereist -fno-strikte-aliasing om veilig onder gcc worden gebruikt. Ook gecorrigeerd een probleem met utlist zo merkt zij op de strikte aliasing regel en gedraagt zich behoorlijk onder O2 en O3.
Wat is nieuw in versie 1.6:
- Versie 1.6 van uthash bevat nieuwe hash functies, nieuwe HASH_CLEAR en HASH_SELECT operaties, en een extra gekoppelde lijst header utlist.h
Wat is nieuw in versie 1.5:
- Deze versie ondersteunt thread-safe gelijktijdige lezers en geeft ongeveer 13 % sneller HASH_FIND prestaties.
Wat is nieuw in versie 1.4:
- Deze versie beschikt over C ++ compatibiliteit, een API voor het verkrijgen van het item tellen, een grotere efficiëntie van het geheugen, en schoon pedante compilatie.
Reacties niet gevonden