1

我想要一个类似于std::map具有多个关键级别的数据结构。例如在这个 my_map 中:

(‘a’ , “a1”) ->  “value1”
(‘a’ , “a2”) ->  “value2”
(‘b’ , “b1”) ->  “value3”
(‘b’ , “b2”) ->  “value4”

第一级键值是字符:['a' and 'b']第二级键是std::string(“a1”等),值是字符串。

API要求:

使用两个键值添加元素。通过第一个键检索元素: my_map.at_first_level('a'),这应该返回一个地图,如:

"a1" -> “value1”
"a2" -> “value2”

这种“多级映射”数据结构是否在任何 C++ 库中实现?

4

2 回答 2

7

你考虑过地图的地图吗?

std::map<char, std::map<std::string, std::string> myMap;
于 2018-06-10T15:58:05.680 回答
2

我建议使用composite_key https://www.boost.org/doc/libs/1_67_0/libs/multi_index/doc/tutorial/key_extraction.html来提升 MultiIndex

这是我最近给出的一个使用它的例子:

于 2018-06-10T22:45:47.657 回答