C++类似于 std::map 的数据结构,具有多个键级别
C++ data structure similar to std::map with multiple key levels
我希望有一个类似于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 带比较运算符的组合键
相关文章:
- 类似于strcat()的函数出现问题
- 对于多个字符(如 ETX/STX 对),是否有类似于 std::quote 的东西
- C++类似于 std::map 的数据结构,具有多个键级别
- 就地合并,类似于 std::vector 中的元素
- 使结构的行为类似于 std::tuple
- C99 中的_Complex类型在 C++ 中的行为是否类似于 std::complex<>?
- 创建一个类似于 std::integral_constant 的容器
- 为什么 std::move 的行为类似于 std::copy
- 类似于类中的 std::map 或 std::vector 的构造函数
- 为什么我需要一个类似于复合文字的临时构造来初始化我的std::数组成员
- C++类似于 std::vector / boost::array 的文件内存映射容器
- 将字符串的向量连接到std::ostream(类似于boost::Join)
- 为什么std::字符串串联运算符的工作原理类似于右关联运算符
- 为什么 std::生成类似于 std::for_each 的返回状态?
- 类似于' std::set_intersection ',但产生相等的元素对
- 对于std::tr1::unordered_map,是否存在类似于std::map::lower_bound的等效std
- 是否有std::函数类型或类似于带有auto参数的lambda
- 如何实现类似于 std::vector 的自定义类
- 是std::unordered_set连续的(类似于std::vector)
- 传递一个成员函数,类似于c++中的std::函数(类似于c#)