我總是在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