本蒟蒻的头文件报错了
我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;
}