2013-04-03 84 views
0

以下工作:如何創建一個包含多個索引的std :: map?

std::map<std::string, Animal*> animalMap; 

animalMap["KillerRabbit"] = new KillerRabit; 

但如果我想這樣做呢?

animalMap["KillerRabbit"]["White"] = new KillerRabit; 

我不知道「官方」名稱索引括號是,知道他們會幫助極大,而谷歌搜索= P

+0

它們被稱爲下標運算符,通俗地也稱爲數組訪問或索引運算符。 – leemes 2013-04-03 20:23:52

+0

澄清請求:您是否想使用「White」作爲主鍵來搜索KillerRabit對象?您是否希望在程序中選擇將顏色從「白色」更改爲其他顏色? – Arun 2013-04-03 20:24:05

+0

@ArunSaha 是的,我想在這樣做的時候找到一個白色的殺手鐗,我不太可能用紅漆或其他東西來灌注殺手鐗,所以我不這麼認爲! – Hobbyist 2013-04-03 20:28:18

回答

4

你所尋找的是地圖地圖的:

std::map<std::string, std::map<std::string, Animal*>> animalMap; 

現在存儲在animalMap中的每個值本身都是std::map。外部和內部地圖的關鍵類型是std::string

[...]語法是下標運算符。更具體地說,你可以用下標地圖。鍵被映射到值。

+3

我會奉獻一隻名爲sftrabbit的兔子給你,現在問題是應該怎麼看! – Hobbyist 2013-04-03 20:26:12

+1

你是否是「殺手鐗」? ;) – leemes 2013-04-03 20:26:28

+0

@愛好者嗯,我的用戶名來自[這傢伙](http://www.bunspace.com/static/groups/160/logo.jpg),所以應該給你一個想法。 ;) – 2013-04-03 20:31:09

相關問題