predefined_ops.h报错

本蒟蒻的头文件报错了
我cpp文件的代码是这样的:

#include

using namespace std;

const int N = 30;

struct node
{
    string name;
    int score;
}a[N];

int n;

int main()
{
    cin >> n;
    for (int i = 0; i < n; i++) cin >> a[i].name >> a[i].score;
    sort(a, a + n);
    for (int i = 0; i < n; i++) cout << a[i].name << ' ' << a[i].score << '\n';
    
    return 0;
}

发现无中生有一个predefined_ops.h报错了
报错信息是[Error] no match for 'operator<' (operand types are 'node' and 'node')
上网查了很久没有靠谱的

你的sort有问题,不是头文件的问题

可参考:https://blog.csdn.net/qq_55855427/article/details/119754299

#include<bits/stdc++.h>

using namespace std;

const int N = 30;
 
struct node
{
    string name;
    int score;
}a[N];

int n;
 
int main()
{
    bool cmp(node a, node b);
    cin >> n;
    for (int i = 0; i < n; i++) 
        cin >> a[i].name >> a[i].score;
    sort(a, a + n, cmp);
    for (int i = 0; i < n; i++) 
        cout << a[i].name << " " << a[i].score << "\n";
    
    return 0;
}

bool cmp(node a, node b)
{
    return a.score < b.score;
}