以下作品:
std::map<std::string, Animal*> animalMap;
animalMap["KillerRabbit"] = new KillerRabit;
但是如果我想这样做呢?
animalMap["KillerRabbit"]["White"] = new KillerRabit;
我不知道索引括号的“官方”名称是什么,知道它们在谷歌搜索时会有很大帮助 =p
以下作品:
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
.
[...]
语法是下标运算符。不过,更具体地说,您使用keys为 map 下标。键映射到值。
sftrabbit 给出了规范的方法来做到这一点。如果您不希望每个键有多个映射查找,您也可以使用 std::pair 作为映射键。