我正在编写一个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;
}
那么有没有树容器可以存储我写的节点? 我需要将节点存储为多个树。
答案 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);
}