我正在尝试将对象 Point2D 插入 Point2D 集合中,但我无法做到这一点,该集合似乎适用于 int 和 char 但不适用于对象。
我需要帮助来了解如何将对象插入集合中???假设我想按 x 值的升序对它们进行排序
class Point2D
{
public:
Point2D(int,int);
int getX();
int getY();
void setX(int);
void setY(int);
double getScalarValue();
protected:
int x;
int y;
double distFrOrigin;
void setDistFrOrigin();
};
int main()
{
Point2D abc(2,3);
set<Point2D> P2D;
P2D.insert(abc); // i am getting error here, i don't know why
}
您需要实施operator<
你的班级超载。例如,在您的班级中,您可以执行以下操作:
friend bool operator< (const Point2D &left, const Point2D &right);
然后,在课堂外:
bool operator< (const Point2D &left, const Point2D &right)
{
return left.x < right.x;
}
Edit:根据退休忍者的建议,您还可以将其实现为类中的常规成员函数:
bool operator< (const Point2D &right) const
{
return x < right.x;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)