我需要以一种有效的方式存储自定义点对象(提供了 getX() 和 getY())来执行范围查询。所以我一直在寻找四叉树、kd-tree 或类似的模板化实现。例如像这样:https ://code.google.com/p/kche-tree/ (但这似乎只适用于原始类型......?)
有建议吗?还是我需要自己实施?(需要开源许可证)
谢谢!
我需要以一种有效的方式存储自定义点对象(提供了 getX() 和 getY())来执行范围查询。所以我一直在寻找四叉树、kd-tree 或类似的模板化实现。例如像这样:https ://code.google.com/p/kche-tree/ (但这似乎只适用于原始类型......?)
有建议吗?还是我需要自己实施?(需要开源许可证)
谢谢!
尝试使用 boost。Boost 通常是非常好的 C++ 库。
Boost Geometry具有用于最近邻搜索的 R-tree 。
看看这个https://compilr.com/cobalthex/quadtree/main.cpp 这也是我要找的。我猜代码是开源的,你可以重用和修改它。
您只需要 Quadtree.h 和 Quadtree.cpp。将 XY 点修改为您认为适合您使用的结构。
希望这可以帮助!