2013-04-03 50 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

相关问题