Я не могу вставить предметы в мой неупорядоченный набор. Что здесь происходит?
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» (или нет приемлемого преобразования)
Компилятор говорит вам, что происходит: реализация unordered_set требует что вы определяете operator==()
за NODE
, Кстати, вы также должны определить hash()
функция.
Вы не определили оператор сравнения ==
и вы не договорились о том, чтобы его хешировали. (также, MAGIC_BUFFER_SIZE
char
а также typedef struct
? В самом деле? Вы изучали C ++ или C?)