如何创建一个包含多个索引的std :: map?
问题描述:
std::map<std::string, Animal*> animalMap;
animalMap["KillerRabbit"] = new KillerRabit;
但如果我想这样做呢?
animalMap["KillerRabbit"]["White"] = new KillerRabit;
我不知道“官方”名称索引括号是,知道他们会帮助极大,而谷歌搜索= P
答
你所寻找的是地图地图的:
std::map<std::string, std::map<std::string, Animal*>> animalMap;
现在存储在animalMap
中的每个值本身都是std::map
。外部和内部地图的关键类型是std::string
。
[...]
语法是下标运算符。更具体地说,你可以用键下标地图。键被映射到值。
答
sftrabbit给出了执行它的规范方法。如果你不希望每个键有多个地图查找,你也可以使用std :: pair作为地图键。
它们被称为下标运算符,通俗地也称为数组访问或索引运算符。 – leemes 2013-04-03 20:23:52
澄清请求:您是否想使用“White”作为主键来搜索KillerRabit对象?您是否希望在程序中选择将颜色从“白色”更改为其他颜色? – Arun 2013-04-03 20:24:05
@ArunSaha 是的,我想在这样做的时候找到一个白色的杀手锏,我不太可能用红漆或其他东西来灌注杀手锏,所以我不这么认为! – Hobbyist 2013-04-03 20:28:18