Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 对于我的问题,无序地图的数据查询时间不够快_C++_Arrays_Dictionary_Hashtable_A Star - Fatal编程技术网

C++ 对于我的问题,无序地图的数据查询时间不够快

C++ 对于我的问题,无序地图的数据查询时间不够快,c++,arrays,dictionary,hashtable,a-star,C++,Arrays,Dictionary,Hashtable,A Star,我正在实现一个*算法,它需要更快的数据查询,我能想到的最好的方法是哈希表(cpp中的无序映射),但是对于我的用例来说,计算时间有点高(每个查询4微秒) A*:A*是一种基于启发式的搜索方法,用于在给定地图中找到最优解。它通过从开始到目标创建和展开树(树中的每个节点都是地图上的特定位置)来查找路径,当创建新节点时,算法会检查以前是否创建过相同的节点 为了检查新创建的节点的可用性,我将所有节点放入字典中,并在必要时进行查询,但正如前面提到的,查询时间比我解决问题所需的时间要长,我尝试的另一种方法是创

我正在实现一个*算法,它需要更快的数据查询,我能想到的最好的方法是哈希表(cpp中的无序映射),但是对于我的用例来说,计算时间有点高(每个查询4微秒)

A*:A*是一种基于启发式的搜索方法,用于在给定地图中找到最优解。它通过从开始到目标创建和展开树(树中的每个节点都是地图上的特定位置)来查找路径,当创建新节点时,算法会检查以前是否创建过相同的节点

为了检查新创建的节点的可用性,我将所有节点放入字典中,并在必要时进行查询,但正如前面提到的,查询时间比我解决问题所需的时间要长,我尝试的另一种方法是创建一个二维布尔数组(对于已占用的节点为true,对于未占用的节点为false)使用映射的大小并直接从2d数组查询它,但问题是数组的内存创建太高


有没有其他更快的查询方法?

无序_map
是一个很好的通用哈希表,但在某些情况下,另一种实现可以更快(例如数量级)。我建议您看看最近的一些努力,例如and,并尝试其中提到的一种实现。您好,很抱歉对您的帮助反应太晚,实际上我找到了另一种方法,但这似乎更有效,谢谢:)
unordered_map
是一个很好的通用哈希表,但在某些情况下,另一种实现可能快得多(例如,数量级)。我建议您看看最近的一些努力,例如和,并尝试其中提到的一种实现。您好,很抱歉对您的帮助反应太晚,实际上我找到了另一种方法,但这似乎更有效,谢谢:)