C++ 对于我的问题,无序地图的数据查询时间不够快
我正在实现一个*算法,它需要更快的数据查询,我能想到的最好的方法是哈希表(cpp中的无序映射),但是对于我的用例来说,计算时间有点高(每个查询4微秒) A*:A*是一种基于启发式的搜索方法,用于在给定地图中找到最优解。它通过从开始到目标创建和展开树(树中的每个节点都是地图上的特定位置)来查找路径,当创建新节点时,算法会检查以前是否创建过相同的节点 为了检查新创建的节点的可用性,我将所有节点放入字典中,并在必要时进行查询,但正如前面提到的,查询时间比我解决问题所需的时间要长,我尝试的另一种方法是创建一个二维布尔数组(对于已占用的节点为true,对于未占用的节点为false)使用映射的大小并直接从2d数组查询它,但问题是数组的内存创建太高C++ 对于我的问题,无序地图的数据查询时间不够快,c++,arrays,dictionary,hashtable,a-star,C++,Arrays,Dictionary,Hashtable,A Star,我正在实现一个*算法,它需要更快的数据查询,我能想到的最好的方法是哈希表(cpp中的无序映射),但是对于我的用例来说,计算时间有点高(每个查询4微秒) A*:A*是一种基于启发式的搜索方法,用于在给定地图中找到最优解。它通过从开始到目标创建和展开树(树中的每个节点都是地图上的特定位置)来查找路径,当创建新节点时,算法会检查以前是否创建过相同的节点 为了检查新创建的节点的可用性,我将所有节点放入字典中,并在必要时进行查询,但正如前面提到的,查询时间比我解决问题所需的时间要长,我尝试的另一种方法是创
有没有其他更快的查询方法?
无序_map
是一个很好的通用哈希表,但在某些情况下,另一种实现可以更快(例如数量级)。我建议您看看最近的一些努力,例如and,并尝试其中提到的一种实现。您好,很抱歉对您的帮助反应太晚,实际上我找到了另一种方法,但这似乎更有效,谢谢:)unordered_map
是一个很好的通用哈希表,但在某些情况下,另一种实现可能快得多(例如,数量级)。我建议您看看最近的一些努力,例如和,并尝试其中提到的一种实现。您好,很抱歉对您的帮助反应太晚,实际上我找到了另一种方法,但这似乎更有效,谢谢:)