Apocrypha

parallel-hashmap

Family of header-only, fast and memory-friendly hashmap and btree containers

Overview This repository aims to provide a set of excellent hash map implementations, as well as a btree alternative to std::map and std::set, with the following characteristics: Header only: nothing to build, just copy the parallel_hashmap directory to your project and you are good to go. drop-in replacement for std::unordered_map, std::unordered_set, std::map and std::set Compiler with C++11 support required, C++14 and C++17 APIs are provided (such as try_emplace) Very efficient, significantly faster than your compiler's unordered map/set or Boost's, or than sparsepp Memory friendly: low memory usage, although a little higher than sparsepp Supports heterogeneous lookup Easy to forward declare: just include phmap_fwd_decl.h in your header files to forward declare Parallel Hashmap containers [note: this does not work currently for hash maps with pointer keys] Dump/load feature: when a flat hash map stores data that is std::trivially_copyable, the table can be dumped to disk and restored as a single array, very efficiently, and without requiring any hash computation. This is typically about 10 times faster than doing element-wise serialization to disk, but it will use 10% to 60% extra disk space. See examples/serialize.cc. (flat hash map/set only) Automatic support for boost's hash_value() method for providing the hash function (see examples/hash_value.h). Also default hash support for std::pair and std::tuple. natvis visualization support in Visual Studio (hash map/set only)

Available in

OverlayNewestEbuildsLast activity
guru gitweb ↗ 2.0.0 2 45 h details ›

Versions & arches

VersionOverlay amd64arm64 Committed
2.0.0 guru amd64 testing arm64 testing view · download · history ↗
1.4.1 guru amd64 testing arm64 testing view · download · history ↗

Use flags of 2.0.0

  • examples Install examples, usually source code
  • test Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently)

Runtime dependencies of 2.0.0

show 1 lines