我正在执行某些算法,我在这个算法中使用了map<string,map<string,double>>
。它完美地工作,给出正确的结果,但如果我更改map<string,map<string,double>>
为unordered_map<string,map<string,double>>
,我的算法停止对某些输入的工作。地图vs无序地图
我想问我是否缺少unordered_map
和map
之间的差异。有没有可能导致这种情况的重要事情?
编辑:这是弗洛伊德 - Warshall算法,我不认为是竟被数据排序的问题。 Onlt我使用的map仅用于制作一个矩阵,其中包含2个节点之间的边缘值信息。
什么算法? “停止工作”是什么意思? – user1810087
这可能是因为你的程序在某个时候调用了未定义的行为,而这发生在幸运地用'map <,>'而不是'unordered_map <,>'来做你想要的。请发布[MVCE](https://stackoverflow.com/help/mcve)。 – cdhowie
Floyd-Warshall ..我不能释放,这就是为什么我问是否有任何可能导致此问题的差异。我认为应该没有什么区别。只有在时间复杂度为 – scarface