我想创建一个STL贴图来查找项目是否足够接近三维空间中的另一个项目。到目前为止,我的“低于仿函数”工作得很好,粘贴到以下链接。
现在这个问题并不是“最近邻居”的问题。相反,它是“在某个距离内是否存在邻居”的问题。
我的例子只显示了一个维度。为清晰起见,我跳过了Y / Z尺寸。
class ApproximateLessFunctor {
public:
ApproximateLessFunctor( float fudgeFactor ) :
mFudgeFactor( fudgeFactor ) {};
bool operator()( float a, float b ) const {
return (a < (b - mFudgeFactor) );
}
float mFudgeFactor;
};
typedef map<float, int, ApproximateLessFunctor> XAxisMap;
class XAxis {
public:
XAxisMap vMap;
XAxis(ApproximateLessFunctor functor, float x, int v)
: vMap( functor )
{
vMap.insert(make_pair(x, v));
}
};
在极少数情况下,我的意思是 - 非常罕见 - 地图在位置重叠时找不到匹配的条目。
我还能做些什么来实现这个,仍然使用STL容器吗?