定义一个用于sort排序的比较函数,编译时发生错误不知道错在哪里
struct node{
int id;
int x, y;
};
bool cmp(node a, node b){
return a.x ** 2 + a.y ** 2 < b.x **2 + b.y **2;
}
sort(v.begin(), v.end(), cmp);
#错误内容
[Error] invalid type argument of unary '*' (have 'int')
C++好像并没有 a**b这种写法吧,计算次方应该是调函数 pow(a,b);
改成 int 型
struct node{
int id;
int x, y;
};
int cmp(node a, node b){
return a.x ** 2 + a.y ** 2 < b.x **2 + b.y ** 2;
}
sort(v.begin(), v.end(), cmp);
bool 和int 没区别吧,都是返回1和0