predefined_ops.h报错

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;
}