2013-07-14 193 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

如果它是任何人的帮助,这里是一类建立在安德烈的回答,它允许通过支架运营商像一个普通的二维数组将访问代码:

​​