2012-09-18 42 views
0

我無法將項插入到我的無序集中。到底是怎麼回事?無法將()結構插入到unordered_set中

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'(或沒有可接受的轉換)

回答

3

編譯器告訴你發生了什麼事情:unordered_set 的執行需要臨時你可以爲NODE定義一個operator==()。順便說一句:你還必須定義一個hash()函數。

0

您沒有定義比較運算符==,也沒有安排它被散列。 (還有,MAGIC_BUFFER_SIZEchartypedef struct?真的嗎?您是否學過C++或C?)

+0

第一個代碼片段不是我的代碼,但代碼I是作爲賦值的一部分給出的。 –