Невозможно вставить () структуру в 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» (или нет приемлемого преобразования)

0

Решение

Компилятор говорит вам, что происходит: реализация unordered_set требует что вы определяете operator==() за NODE, Кстати, вы также должны определить hash() функция.

3

Другие решения

Вы не определили оператор сравнения ==и вы не договорились о том, чтобы его хешировали. (также, MAGIC_BUFFER_SIZE char а также typedef struct? В самом деле? Вы изучали C ++ или C?)

0

По вопросам рекламы [email protected]