parallel-hashmap provides a family of header-only, very fast and memory-friendly hashmap and btree containers for C++11 and above.
It has the following characteristics:
Drop-in replacement for std::unordered_map, std::unordered_set, std::map, and std::set with better performance.
Requires C++11 compiler support and provides C++14 and C++17 APIs, including features like try_emplace.
Highly efficent and faster than standard unordered containers, Boost implementations, or sparsepp alternatives.
Memory-friendly: maintains low memory usage with a slight increase compared to sparsepp.
Heterogeneous lookup support.
Dump/load feature: for flat hash maps storing std::trivially_copyable data, the entire table can be dumped to disk and restored as a single array efficiently without hash computations. This is about 10 times faster than element-wise serialization but uses 10% to 60% extra disk space.
Automatic support for boost::hash_value() and default hash functions for std::pair and std::tuple.