我正在執行某些算法,我在這個算法中使用了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