Skip to content

simple open addressing hashmap, and linked hashmap in C11.

Notifications You must be signed in to change notification settings

michaeljclark/chashmap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

chashmap

simple open addressing hashmap, and linked hashmap in C11.

a hashmap and linked hashmap implementation with variable fixed-width key and value that are set at initialization time. this allows a single implementation to be configured as a hashset and linked hashset by using zero length values. the API however still takes a value parameter just the length can be zero. the design adopts an open-addressing hashtable with tombstone bitmaps to eliminate the need for empty or deleted key sentinels.

the implementation does not support any advanced features like custom deleters or multithreading. it is designed to be a simple and fast hash table with minimal dependencies and that will compile in standard C11.

the implementation is derived from ethical_hashmap which is a fast C++ hashmap, hashset, linked hashmap and linked hash set implementation that supports C++ copy and move constructors, placement new and explicit destructor calls for flexible templated key and value classes.

build

  • requires CMake.
cmake -B build -G "Visual Studio 17 2022" -A x64
cmake --build build --config RelWithDebInfo
build\RelWithDebInfo\test_hmap.exe

About

simple open addressing hashmap, and linked hashmap in C11.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published