是否有任何树容器可以存储具有多个值的节点?

时间:2012-11-28 02:01:30

标签: c++ tree containers nodes treenode

我正在编写一个c ++代码,它应该能够用我编写的节点构建一个多树。但是我尝试使用我在下面地址下载的树容器来存储我的节点,但是所有这些容器似乎都无法存储具有多个值的节点。

http://www.datasoftsolutions.net/tree_container_library/overview.php

http://archive.gamedev.net/archive/reference/programming/features/coretree2/default.html

struct node{    //construct the node
    char *dirname;
    char date[12];
    int loc;
    bool prot;
}

那么有没有树容器可以存储我写的节点? 我需要将节点存储为多个树。

1 个答案:

答案 0 :(得分:0)

我怀疑它与struct node中的多个字段有关。

存储在树中的任何数据类型都需要一些比较运算符。您需要确定您尝试使用的库所需的库,然后针对您的节点类型实现它们。我看了一下文档。该包使用C ++编写,使用模板,并与STL兼容。所以它可能还需要某些typedef,比如value_type等......

向我们展示您收到的错误消息,我们可以解决它。至少,您可能需要实现运算符<和operator!=或等价物。

更新:为了搜索树(或将节点放入其中),您至少需要定义operator<。错误消息告诉我们。您可能还需要operator ==才能使其正常工作。试试这个(未经测试):

#include <cstring>

bool operator< (const node& left, const node&right) {
    return 0 > strcmp(left.dirname, right.dirname);
}

bool operator== (const node& left, const node&right) {
    return 0 == strcmp(left.dirname, right.dirname);
}