0

我无法将项目插入我的无序集中。到底是怎么回事?

typedef struct node_t
{
    char s[SIZE];
    char blank;     //position of blank tile
    char g,h;
    int depth;      //Depth of node for IDA*
}NODE;

...

NODE CurrentNode;
unordered_set<NODE> seen;

seen.insert(CurrentNode);

引发以下错误:

错误 3 错误 C2678:二进制“==”:未找到采用“const NODE”类型的左侧操作数的运算符(或没有可接受的转换)

4

2 回答 2

3

编译器告诉你发生了什么: unordered_set 的实现需要你定义一个operator==()for NODE。顺便说一句:您还必须定义一个hash()函数。

于 2012-09-18T22:01:41.560 回答
0

您没有定义比较运算符==,也没有安排对其进行散列处理。(还有,MAGIC_BUFFER_SIZE chartypedef struct?真的吗?你学的是 C++ 还是 C?)

于 2012-09-18T22:02:10.160 回答