Our great sponsors
-
STC
A modern, user friendly, generic, type-safe and fast C99 container library: String, Vector, Sorted and Unordered Map and Set, Deque, Forward List, Smart Pointers, Bitset and Random numbers. (by stclib)
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
You can either use Abseil's Swiss Table, or Facebook's F14, or Skarupke's flat_hash_map.
You can use my cmap implementation, which is faster and smaller than Skarupke's flat_hash_map, and about 4 times faster than std::unordered_map on insert. It's written in C but works perfectly with trivial keys in c++, or with its own string class (cstr).
"Linear Hashing" (https://en.wikipedia.org/wiki/Linear_hashing) is a technique which allows a hash table to grow without recalculating the digest of all the elements. Insertions can run in O(1) time. This is the principle used in my NuDB append-only database library (https://github.com/CPPAlliance/NuDB).