0

以下作品:

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

animalMap["KillerRabbit"] = new KillerRabit;

但是如果我想这样做呢?

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

我不知道索引括号的“官方”名称是什么,知道它们在谷歌搜索时会有很大帮助 =p

4

2 回答 2

4

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

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

现在存储的每个值animalMap本身就是一个std::map. 外部和内部映射的键类型都是std::string.

[...]语法是下标运算符。不过,更具体地说,您使用keys为 map 下标。键映射到值。

于 2013-04-03T20:21:22.967 回答
1

sftrabbit 给出了规范的方法来做到这一点。如果您不希望每个键有多个映射查找,您也可以使用 std::pair 作为映射键。

这是一个这样做的例子。

于 2013-04-03T20:33:46.200 回答