Я пытаюсь определить unordered_set следующим образом:
unordered_set<Point> m_Points;
Когда я скомпилирую его, я получаю следующую ошибку:
Стандарт С++ не предоставляет хэш для этого типа.
Класс Point
:
class Point{
private:
int x, y;
public:
Point(int a_x, int a_y)
: x(a_x), y(a_y)
{}
~Point(){}
int getX()const { return x; }
int getY()const { return y; }
bool operator == (const Point& rhs) const{
return x == rhs.x && y == rhs.y;
}
bool operator != (const Point& rhs) const{
return !(*this == rhs);
}
};
- Как/где определить хэш-функцию для Точка?
- Что было бы хорошей хэш-функцией для двумерной точки?