class LexCompare { // lex comparison public: int operator()(const Point2D& p1, const Point2D& p2) const { if (p1.getX() < p2.getX()) // first compare x return -1; else if (p1.getX() > p2.getX()) return +1; else if (p1.getY() < p2.getY()) // x's equal; compare y return -1; else if (p1.getY() > p2.getY()) return +1; else // both x and y are equal return 0; } };