我希望有一个类似于std::map
的数据结构,具有多个键级别。例如,在此my_map:
(‘a’ , “a1”) -> “value1”
(‘a’ , “a2”) -> “value2”
(‘b’ , “b1”) -> “value3”
(‘b’ , “b2”) -> “value4”
第一级键值是字符:['a' and 'b']
,第二级键值是std::string
("a1"等(,值是字符串。
接口要求:
使用两个键值添加元素。 通过第一个键检索元素:my_map.at_first_level('a')
,这应该返回如下映射:
"a1" -> “value1”
"a2" -> “value2”
这种"多级映射"数据结构是否在任何C++库中实现?
你考虑过地图地图吗?
std::map<char, std::map<std::string, std::string> myMap;
我建议使用composite_key
https://www.boost.org/doc/libs/1_67_0/libs/multi_index/doc/tutorial/key_extraction.html 提升MultiIndex
。这是我使用它给出的最近示例:
- equal_range 在 boost::Multi_Indexed_Container 带比较运算符的组合键