2026-10-29 00:01:50 +01:00
2026-10-29 00:01:50 +01:00
2026-10-29 00:01:50 +01:00
2026-10-29 00:01:50 +01:00
2025-11-18 21:40:40 +01:00
2026-10-29 00:01:50 +01:00
2026-10-29 00:01:50 +01:00
2026-10-29 00:01:50 +01:00

hm.h

A single header, C11 compliant, library that implements a hash table in C using separate chaining.

Example

#define HM_IMPLEMENTATION
#include "hm.h"

#include <stdio.h>

int main(void)
{
    HashMap ages = {0}; // or hm_create(...) to specify custom key and
                        // value sizes, a size of 0 means a NULL
                        // terminated string

    hm_put(&ages, "alice", "30");
    hm_put(&ages, "bob", "25");

    char *alice = hm_get(&ages, "alice"); // NULL if key is not found
    printf("alice is %s\n", alice);

    HashMapIterator it = hm_iterate(&ages);
    while (hm_next(&it) != NULL) {
        printf("%s: %s\n", (const char*)hm_key(&it), (char*)hm_value(&it));
    }

    hm_free(&ages); // The HashMap can still be reused
    return 0;
}

Description
A single header, C11 compliant, library that implements a hash table in C using separate chaining
Readme MIT 91 KiB
Languages
C 83.1%
C++ 16.2%
Makefile 0.7%