C++类似于 std::map 的数据结构,具有多个键级别

C++ data structure similar to std::map with multiple key levels

本文关键字:std 类似于 map 数据结构 C++      更新时间:2023-10-16

我希望有一个类似于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_keyhttps://www.boost.org/doc/libs/1_67_0/libs/multi_index/doc/tutorial/key_extraction.html 提升MultiIndex

。这是我使用它给出的最近示例:

  • equal_range 在 boost::Multi_Indexed_Container 带比较运算符的组合键