我手头有许多x,y坐标点,每个点都有一些额外的数据与之相关联。这些额外的数据我将存储在一个结构体中。
我的应用程序需要在给定任意一个点的情况下,找出有多少其他点位于围绕该点的矩形区域内(该点位于矩形的中心)。
我想到的一种方法是将所有的x点作为键存储在一个Map A中,将所有的y点作为键存储在另一个Map B中。 Map A将以x为键,y值为值。 Map B将以y为键,关联的结构体为值。
这样,如果给定的点是(10.5,20.6),我可以使用upper_bound(10.5+RECTANGLE_WIDTH)和lower_bound(10.5-RECTANGLE_WIDTH)来查找位于矩形内的x值范围,并对应的y值是否在+-20.6的范围内。
我使用Map的整个目的是因为我有大量的x,y点需要搜索,而且每两秒钟就要进行一次搜索。所以我必须使用Map的log(n)搜索。
但我感觉这可以用更有效率的方式来完成。有什么建议吗?
我的应用程序需要在给定任意一个点的情况下,找出有多少其他点位于围绕该点的矩形区域内(该点位于矩形的中心)。
我想到的一种方法是将所有的x点作为键存储在一个Map A中,将所有的y点作为键存储在另一个Map B中。 Map A将以x为键,y值为值。 Map B将以y为键,关联的结构体为值。
这样,如果给定的点是(10.5,20.6),我可以使用upper_bound(10.5+RECTANGLE_WIDTH)和lower_bound(10.5-RECTANGLE_WIDTH)来查找位于矩形内的x值范围,并对应的y值是否在+-20.6的范围内。
我使用Map的整个目的是因为我有大量的x,y点需要搜索,而且每两秒钟就要进行一次搜索。所以我必须使用Map的log(n)搜索。
但我感觉这可以用更有效率的方式来完成。有什么建议吗?