Download Source Package libkdtree++:
libkdtree++ is a C++ template container implementation of k-dimensional space sorting, using a kd-tree. It:
- sports an unlimited number of dimensions (in theory)
- can store any data structure, provided the data structure provides
operator[0 - k-1] to access the individual dimensional
components (arrays, std::vector already do) and a std::less
implementation for the type of dimensional components
- has support for custom allocators
- implements iterators
- provides standard find as well as range queries
- has amortised O(lg n) time (O(n lg n) worst case) on most
operations (insert/erase/find optimised) and worst-case O(n) space.
- provides a means to rebalance and thus optimise the tree.
- exists in its own namespace
- uses STL coding style, basing a lot of the code on stl_tree.h
Note that the library is not (yet) complete and it's not thoroughly tested. However, given the effort and grief I went through in writing it, I would like to make it available to folks, get people to test it, and hopefully have some peeps submit improvements.
It's not yet documented, although the usage should be fairly straight forward. I am hoping to find someone else to document it as I suck at documentation and as the author, it's exceptionally difficult to stay didactically correct.
libkdtree++ only exists as a -dev package as it's only a bunch of C++ header files. Therefore, no static or shared library is necessary, allowing for ultimate flexibility.
| Architecture | Package Size | Installed Size | Files |
|---|---|---|---|
| all | 14.0 kB | 84 kB | [list of files] |