Sparse Map Versions Save

C++ implementation of a memory efficient hash map and hash set

v0.6.2

4 years ago
  • Fix bug when copying an empty map with the copy constructor (#9).
  • Add bool contains(...) methods.

v0.6.1

5 years ago
  • Fix compilation error with GCC 9, the implicit copy/move constructor/operator of the iterator were not generated.
  • Rename the internal insert with hint method to insert_hint to avoid a potential ambiguous overload with the insert with a pair of iterators.

v0.6.0

5 years ago
  • Rename CMake project name from tsl_sparse_map to tsl-sparse-map for coherence with the convention used by most package managers. The find_package(tsl-sparse-map) command must now be used instead of the find_package(tsl_sparse_map).
  • Set bucket count for default constructed map/set to 0 to avoid any allocation.
  • Add support for efficient serialization (#6).
  • On Windows, add tsl-sparse-map.natvis to the installed files.
  • Fix CMake >= 3.13 warning on Policy CMP0076 and add quotes to paths.
  • Remove cxx_std_11 from target_compile_features to avoid a warning with older versions of CMake that don't support it. The warning was given even if the target_compile_features was surrounded in a if(${CMAKE_VERSION} VERSION_GREATER "3.7").

v0.5.0

5 years ago
  • Add installation rules in the CMake of the project.
  • Add MSVC debugger visualization .natvis file.

v0.4.0

5 years ago

This release introduce a minor backward incompatibility by moving the headers files.

  • Move the header files from tsl to include/tsl for more coherence with other C++ libraries.
  • For CMake users, add an exported target tsl::sparse_map to be used with target_link_libraries.

v0.3.0

5 years ago
  • Clean-up the buckets marked as deleted when their number is too high.
  • Bug correction, when all the buckets are marked as deleted, the insert method loop forever. Correct the exit condition.
  • Fix issue #1, when a hash table was full of buckets marked as deleted or containing a value (no free bucket), the find and erase operations would loop forever. Same origin as the problem above.
  • Reduce the maximum max_load_factor that can be set to 0.8f instead of 0.9f (and the minimum to 0.1f).
  • Bug correction, set a moved hash map/set in a valid state so that it can still be used even after a move (#3).