如何创建具有多个索引的std :: map?

时间:2013-04-03 20:19:43

标签: c++

以下作品:

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

animalMap["KillerRabbit"] = new KillerRabit;

但如果我想这样做呢?

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

我不知道索引括号的'官方'名称是什么,知道它们会在Googling = p

时极大地帮助

2 个答案:

答案 0 :(得分:4)

您正在寻找的是地图地图:

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

现在animalMap中存储的每个值本身都是std::map。外部和内部地图的键类型为std::string

[...]语法是下标运算符。但更具体地说,您使用下标地图。键映射到值。

答案 1 :(得分:1)

sftrabbit提供了规范的方法。如果您不希望每个键有多个地图查找,您也可以使用std :: pair作为地图键。

Here is an example of doing it that way.