У меня есть класс для затаив Points
в 2D пространстве, как это:Как сравнить две точки в 2D-пространстве
class Point{
public:
Point(double a, double b){ x = a; y = b; }
//some additional information
private:
double x, y;
};
Я хотел бы иметь эти Points
в std::set
, но я не знаю, как писать сравнить STRUCT
struct cCompare{
bool operator()(const Point &p1, const Point &p2){
//what should I write here??
}
};
Два Очки как p
и q
равны, если (p_1,p_2) = (q_1,q_2)
. Должен ли я хранить дополнительную информацию в моем классе Point
? Что-то вроде индекса или любого уникального номера для каждого Point
? И есть что-то вроде этого:
struct cCompare{
bool operator()(const Point &p1, const Point &p2){
return (p1.index < p2.index);
}
};
Почему не предоставляет ' bool Point :: operator <(const Point & other) 'в 1-м месте? –
Вы можете использовать: 'return std :: tie (p1.x, p1.y)
Jarod42
@ πάνταῥεῖ Почему бы мне не использовать этот способ? (struct way) – MoNo