Skip to content

michaeljclark/chashmap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 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 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 cpphashmap 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