Он вызывает operator<(Board*, Board*)
, который просто сравнивает указатели. Либо создайте карту как map<Board, Board>
- либо создайте функтор для сравнения двух указателей карты и используйте его в качестве параметра шаблона:
struct compareBoards {
bool operator()(Board const * b1, Board const * b2) const {
return *b1 < *b2; }
}
И
map<Board*, int, compareBoards> boardMap;