Multi-Dimensional Data Structure (mdds) is a C++ library that includes a collection of various data structures designed to efficiently store and query multi-dimensional data for various filtering criteria. Different structures are optimized for different query needs. The library is provided as a header only, meaning that programs do not need to link to any additional shared library in order to use these data structures. The data structures are all available as C++ templates.
|Tags||Algorithm Indexing multi-dimension template metaprogramming|
Release Notes: All changes in this release are against multi_type_vector. In this release, those methods in multi_type_vector that set or insert element value(s) all return an iterator that references the block where the values are set or inserted. Each of these methods now has a variant that takes an iterator as a position hint, to speed up value insertion. This release also includes several bugfixes in multi_type_vector.
Release Notes: This release fixes various build problems and compiler warnings. It also fixes a bug in flat_segment_tree where its iterator previously would always treat the last valid position before the end position as the end position both in const_iterator and const_reverse_iterator. Upgrading is recommended.
Release Notes: In all projects, an MSVS Solution file has been added to make it easier to build unit test programs on Windows. In mixed_type_matrix, improved performance of size() method by caching it. A new data structure, multi_type_vector, was added to support efficient storage of data of different types. Another new data structure, multi_type_matrix, was added to eventually replace mixed_type_matrix. It uses multi_type_vector as its backend storage.
Release Notes: In segment_tree, a build problem when UNIT_TEST was not defined and a crash with MSVC when comparing iterators of empty search_result instances were fixed. In point_quad_tree, a bug where de-referencing copied search_result iterators would return uninitialized node data was fixed..
Release Notes: The filled storage backend of mixed_type_matrix was re-implemented for better performance, with two separate implementations for zero and empty initial value types. The newer implementation should improve object creation time considerably. There are no API changes in this release.