我总是在C++中使用多层次地图,如map<int,map<int,map<int,int>>>
,但是我找不到一个更有效的方法来更新它或创建它。假设我想插入一个点(1,2)到被用来计算点的地图,我将做到以下几点:如何在C++中高效创建地图
map<int,map<int,int>> totalmap;
if (totalmap.find(1)==totalmap.end()){
map<int,int> map1;
map1[2]=1;
totalmap[1]=map1;
}
else{
auto& map1 = totalmap[1];
if (map1.find(2)==map1.end())
map1[2]=1;
else
map1[2]++;
}
我有,当我需要创建的代码太多3或4级地图。我认为必须有一些比这更好的方法。我唯一能找出的方法是使用multimap将所有的键合并为一个键,但有时我真的需要逐个查询键。
返回值你说的写代码的效率或运行时的效率? – 2014-09-03 02:47:46
'totalmap [1] [2] ++;'相当于你的整个片段。 – 2014-09-03 02:52:50
对于计数点,有没有一个理由不喜欢地图,int>来映射>? –
2014-09-03 02:58:18