2013-07-14 374 views

回答

8

您可以嵌套兩個地圖:

#include <iostream> 
#include <map> 
#include <string> 

int main() 
{ 
    std::map<int,std::map<int,std::string>> m; 

    m[1][3] = "Hello"; 

    std::cout << m[1][3] << std::endl; 

    return 0; 
} 
+0

這工作完美:)謝謝。我會盡快接受答案。 – mrg95

13

是,使用std::pair

map< std::pair<int, int>, string> testMap; 
testMap[std::make_pair(1,3)] = "Hello"; 
+0

有趣。通常,我可能會使用這個,但是我實際上使用Qt創建器,所以我不認爲他們有標準庫。他們可能有類似的東西,但idk。例如,我使用QMap而不是使用std :: map。好東西語法相同 – mrg95

+1

Qt Creator只是一個IDE(集成開發環境),而不是編譯器或不同形式的C++。因此,即使Qt Creator在處理定義QMap的Qt庫時很有用,您仍然可以在Qt Creator中編寫標準C++(例如使用std :: map)並編譯它。 – 2013-07-14 19:37:25

+0

這將比RyanMcK的解決方案效率更高。 –

1

如果它是任何人的幫助,這裏是一類建立在安德烈的回答,它允許通過支架運營商像一個普通的二維數組將訪問代碼:

​​