如何创建具有多个索引的std::map
How do I create an std::map with multiple indices?
以下作品:
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作为映射键。
相关文章:
- 为std::string的某个索引赋值
- 如何在 std::vector 中找到<bool>哪些索引是真的?
- 如何根据排序索引的向量对 std::index 集进行排序?
- 在 std::vector 中索引名称
- 按索引设置 std::variant 的值
- 使用 std::vector 在类中分配索引
- 在 std::variant 中按类型获取索引
- 向量索引变量声明(size_t 或 std::vector<DATATYPE>::size_type)
- 如何摆脱导入的 make 项目中的 Eclipse 索引器"Type std::... could not be resolved"错误
- 如何将 std::vector 索引交换到<int>数据,将数据交换到索引
- 为什么这个分配给 std::vector 索引会失败?
- C++ 通过 std::transform 的 vector 索引获取向量
- std::map 索引运算符与插入方法的性能
- 循环 std::由索引设置
- 如何从 boost::container::vector<std::string>::iterator 访问索引和对象?
- 从 boost::variant 中逐个索引获取项目,就像使用 std::variant 一样
- 如何将 std::vector 的某些元素移动到向量中的新索引?
- 如何将值插入到 c++ boost::multiindex 集合的特定索引中,就像在 std::list 中一样
- 为什么STD :: SPAN超载函数调用操作员索引
- 用负索引索引std::vector