#include <map> class Point{ public: int x, y; Point(){} Point(int x, int y):x(x),y(y){} }; int main(){ typedef std::map<Point, int> PointMap; PointMap pmap; return 0; } この時点ではエラーが出ませんが、insertを使う時にエラーが出ます。 mapはキーをソートするために比較する必要があるので、それを定義しないといけません。 クラス同士を比較できるようにする operator<を追加します。 特に何も考えない場合、これが一番楽です。 #include <map> class Point{ public: int x, y; Point(){} Point(int x, int y):x(x),y(y){} bool oper