mdds 0.8.1 * multi_type_vector * fixed a bug in the erase() method where adjacent blocks of the same type would fail to merge after the erase() call. * add a variant of the position() method that takes an iterator as positional hint. Note that there is no variant of position() that takes const_iterator. mdds 0.8.0 * all * added .pc file for pkg-config. * flat_segment_tree * changed the return type of search_tree from bool to std::pair<const_iterator,bool>, to make it consistent with the search() method. Note that this is an API-incompatible change. * multi_type_vector * added char and unsigned char types to the standard types supported by default. * added position() member method that takes a logical element position and returns a pair of block iterator where the element resides and its offset within that block. * added at() static member method to the data block, which calls the at() method of the underlying std::vector container. * added release() member method to allow caller to release an object stored inside a managed block. * added two templates to ease creation of custom element block functions when using one or two custom element types. * added transfer() member method to allow elements in a specified range to be transferred from one container to another. When transferring elements stored in a managed element block, the ownership of those elements is also transferred. mdds 0.7.1 * multi_type_vector * fixed a bug in set_empty() where emptying a whole or partial block would fail to merge its adjacent block(s) even when they are also empty. mdds 0.7.0 * multi_type_vector * add variants of set() methods (both single- and multi-value) insert(), set_empty() and insert_empty() methods that take an iterator as an additional position hint parameter for block lookup speed optimization. * add support for non-const iterators which allow the client code to modify values directly from the iterators. * set() methods (both single- and multi-parameter variants), set_empty(), insert() and insert_empty() methods now return iterator that references the block to which the values are set or inserted. * fixed bugs in set() method (single-parameter variant) which would insert a new block at incorrect position. * fixed bugs in set() method (multi-parameter variant) which would fail to merge neighboring blocks of identical type under certain conditions. mdds 0.6.1 * all * use property files in the Visual Studio project files, to share some of the common custom build variables across all projects. * various build fixes and compiler warning eliminations. * fixed link error with boost 1.50. * fixed make installer script which previously would not install mdds/compat headers. * flat_segment_tree * fixed a bug in its iterator implementation, which previously would always treat the last valid position before the end position as the end position. This fix affects both in const_iterator and const_reverse_iterator. mdds 0.6.0 * all * added MSVS Solution file, to make it easier to build unit test programs on Windows. * mixed_type_matrix * improved performance of size() method by caching it. * multi_type_vector (new) * new data structure to support efficient storage of data of different types. * multi_type_matrix (new) * new data structure to eventually replace mixed_type_matrix. It uses multi_type_vector as its backend storage. mdds 0.5.4 * segment_tree * fixed build breakage, to allow it to be buildable when UNIT_TEST is not defined. * fixed a crasher with MSVC when comparing iterators of empty search_result instances. * point_quad_tree * fixed a bug where de-referencing copied search_result iterators would return an uninitialized node data. mdds 0.5.3 * mixed_type_matrix * re-implemented the filled storage for better performance, with two separate implementations for zero and emtpy matrix types. The newer implementation should improve object creation time considerably. mdds 0.5.2 * flat_segment_tree * fixed a crash on assignment by properly implementing assignment operator(). * fixed several bugs in shift_right(): * shifting of all existing nodes was not handled properly. * leaf nodes were not properly linked under certain conditions. * shifting with skip node option was not properly skipping the node at insertion position when the insertion position was at the leftmost node. * implemented min_key(), max_key(), default_value(), clear() and swap(). * fixed a bug in operator==() where two different containers were incorrectly evaluated to be equal. * added quickcheck test code. mdds 0.5.1 * fixed build issues on Windows, using MSVC compilers. mdds 0.5.0 * flat_segment_tree's search methods now return a std::pair of const_iterator and bool, instead of just returning bool. * fixed a weird enum value mis-handling with mixed_type_matrix when compiled with MSVC++. * added new insert() method to flat_segment_tree that takes a positional hint in order to speed up insertion speed. Also, all three insert() methods now return the start position of the segment that an inserted segment belongs to. * slight performance improvement on the insert methods of flat_segment_tree. * slight performance improvement on the iterators of flat_segment_tree. * re-organized the structure of flat_segment_tree to split it into multiple headers. * properly support prefix, docdir, includedir configure options. * support DESTDIR environment variable for make install. mdds 0.4.0 * implemented mixed_type_matrix. mdds 0.3.1 * added support for boost::unordered_map (boost) and std::hash_map (stlport) in addition to C++0x's std::unordered_map. mdds 0.3.0 * implemented point_quad_tree. mdds 0.2.1 * added example files on how to use these data structures. * fixed a bug in segment_tree::search_result object, to make it work with empty result set. * fixed segment_tree to make it really usable outside of unit test code. mdds 0.2.0 * other general performance improvements. * lots of code cleanups. * support for search result iterator in segment_tree and rectangle_set, for better search performance. * implemented rectnagle_set. * fixed lots of bugs in the segment_tree implementation. mdds 0.1.2 * implemented segment_tree. * node_base class is now without virtual methods to avoid vtable generation.