On of the most common question by handling large data sets is “How to represented the data?” and of course the answer is versatile. One of the most used solution is a tree like structure, organized by at least one sorting criteria.
KDTree++ is a c++ library which is supporting this feature. KDTrees are allowing to sort data by ‘k’-Dimensional sorting criteria and the library implements a template based realization. KDTree++ is published under Artistic License 2.0.
Update: I was trying to use KDTree++ in on of our projects on Three-Dimensional perception and Point Clouds analysis. Therefore i was adding roundabout 30.000 Points (x,y,z-coordinates plus some extra informations) into such a tree. The first feeling was quiet positive. It was fast and did not consume that much resources. But by using the search functionality, provided by KDTree++ i was shocked. Every time i was placing a query the memory consumption did rise up dramatically, and even worse, it was staying that high. After investigating the KDTree code i figured out that the library does on each query create a copy of the found items and returns them. Unfortunately those items are never deleted and if i try to deleted them by my self the library produces a segmentation fault. So, summing up i would say that these library is really powerful, but bad documented and seems to have some serious bugs.