【发布时间】:2013-04-17 21:41:33
【问题描述】:
我在 C++ 中遇到了一个小问题,希望您能帮助我。
我想定义一个结构 myPoint。这个结构应该能够比较来自类型点的两个对象(定义为对)。我希望 myPoint 的每个“实例”都能够自己比较两个点。这是我尝试编写的代码:
typedef pair<int,int> point;
struct myPoint{
point p;
inline bool operator<( point x, point y ){
return !ccw(p,x,y);
}
所以每个 myPoint 在比较两个点 x,y 时都应该考虑他自己的点 p。 我得到的(翻译的)错误是
"error C2804: Binary Operator '<' has too much Arguments/Parameters"
似乎在语法上可以使这个运算符只有一个点,我猜它会将一个点与一个 myPoint 进行比较,但这不是应该的。 问题的背景是我想使用预定义的排序函数对点向量进行排序,并且作为排序“函数”我想传递一个 myPoint 对象。
【问题讨论】:
-
你的
operator<根本没有意义——你怎么称呼它?此外,inline是多余的,因为您的函数已经在类中定义,因此会自动inline。
标签: c++ struct operator-keyword