C ++:在地图中使用树或地图

时间:2016-01-08 13:59:32

标签: c++ dictionary tree

我想以树格式存储数据:

      A
      |
---------------------
|          |        |
B1         B2       ...
|          |
------     -------
|    |     |  |  |
C1   C2    C3 ...

A和B1,... Bn和C1,... Cn属于std::string类型。元素没有必要排序(但也不会受到伤害)。树的最大深度为3.插入操作的数量很可能与搜索操作相同。如果我搜索我想要复杂如果字符串B1与C1 als child的组合包含在树中(可能还有B&C和C&C的其他组合)。

我想知道我是否应该在地图中使用地图

std::map<std::string,std::map<std::string, std::set<std::string>> myTree;

为此目的或者树(如here)对工作更好。我的第一印象是,在地图内搜索会更容易,因为我可以直接访问密钥。引用提到的树实现,我必须实现&#34;字符串&#34;我自己在树上搜索 - 将子节点作为数组取出并迭代这些值(然后再遍历找到的字符串的子节点)。使用树会提供更好的性能还是可维护性?

0 个答案:

没有答案