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

How do I create an std::map with multiple indices?

本文关键字:索引 std map 何创建 创建      更新时间:2023-10-16

以下作品:

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作为映射键。