predefined_ops.h报错
#include
#include
using namespace std;
struct nm {
string sex;
double height;
} m[45];
bool cmp(nm a, nm b) {
return a.height < b.height;
}
bool cmp2(nm x, nm y) {
return x.height > y.height;
}
int male[45];
int female[45];
int main() {
int n, la = 0, lb = 0;
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> m[i].sex >> m[i].height ;
if (m[i].sex == "male")
male[la++] = m[i].height;
else
female[lb++] = m[i].height;
}
sort(male + 1, male + 1 + la, cmp);
sort(female + 1, female + 1 + lb, cmp2);
for (int i = 1; i <= la; i++)
printf("%.2lf ", male[i]);
for (int i = 1; i <= lb; i++)
printf("%.2lf ", female[i]);
return 0;
}
怎么办!
比较器的参数错误
#include <iostream>
#include <algorithm>
#include <stdio.h>
using namespace std;
struct nm
{
string sex;
double height;
} m[45];
bool cmp(double a, double b)
{
return a < b;
}
bool cmp2(double x, double y)
{
return x > y;
}
int male[45];
int female[45];
int main()
{
int n, la = 0, lb = 0;
cin >> n;
for (int i = 1; i <= n; i++)
{
cin >> m[i].sex >> m[i].height;
if (m[i].sex == "male")
male[la++] = m[i].height;
else
female[lb++] = m[i].height;
}
sort(male + 1, male + 1 + la, cmp);
sort(female + 1, female + 1 + lb, cmp2);
for (int i = 1; i <= la; i++)
printf("%.2lf ", male[i]);
for (int i = 1; i <= lb; i++)
printf("%.2lf ", female[i]);
return 0;
}