【问题标题】:C++ data structure similar to std::map with multiple key levels类似于 std::map 的 C++ 数据结构,具有多个键级别
【发布时间】:2018-06-10 15:54:03
【问题描述】:

我想要一个类似于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++ 库中实现?

【问题讨论】:

  • map<char, map<string, string>> 呢?
  • @JesperJuhl 我现在正在看它。这正是我想要的。
  • 似乎很不清楚您是否需要多索引容器或地图地图。

标签: c++ dictionary boost containers


【解决方案1】:

你考虑过地图的地图吗?

std::map<char, std::map<std::string, std::string> myMap;

【讨论】:

  • 这行得通,但如果我有两个以上的级别,语法会很麻烦。我希望有人在 C++ 中实现了类似于 Pandas 多索引的多级映射,您可以在其中通过级别编号和级别键查找值。
  • @motam79 如果您有多个级别,也许您没有正确映射问题?你确定你使用了正确的数据结构来解决这个问题吗?
  • @motam79 您能否举一个您希望在问题中使用的语法示例?
【解决方案2】:

【讨论】:

    猜你喜欢
    • 2019-12-12
    • 1970-01-01
    • 1970-01-01
    • 2014-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多