这个比较函数问题出在哪儿?

定义一个用于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);

img

改成 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