0

我正在写一个 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;
}

那么是否有任何树容器可以存储我编写的节点?我需要将节点存储为多树。

4

1 回答 1

0

我怀疑它与结构节点中的多个字段有什么关系。

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

向我们展示您收到的错误消息,我们可以解决。至少,您可能需要实现 operator< 和 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);
}
于 2012-11-28T02:44:22.950 回答