Для меня самым простым решением будет сохранение значения, когда счетчик равен максимальному. Поэтому достаточно одной строки:
df[df['count'] == df.groupby(['Mt'])['count'].transform(max)]
Это ваша структура:
struct rec
{
char *id;
char firstname[15];
char lastname[15];
struct rec *next;
};
Вот как вы распределили память для новой записи:
MyNewRec = new rec;
MyNewRec->id = new char[10];
И вот как вы ее освободили.
Участники delete[] first->id;
delete[] first->firstname;
delete[] first->lastname;
firstname
и lastname
не являются указателями, которые вы выделили. Это фиксированные массивы, которые были выделены, когда rec
был выделен через new. Или, другими словами, если вы этого не сделали new
, то вы этого не сделаете delete
.
Удалите эти две строки:
delete[] first->firstname;
delete[] first->lastname;
У меня нет времени на отладку остальной части кода, но я просто скажу это. Следующая строка выглядит странно и неправильно:
comp = strcmp(MyNewRec->lastname, (first->lastname - 1));
comp2 = strcmp(MyNewRec->lastname, (last->lastname - 1));
Я не понимаю, что такое -1
. Но мне пора бежать ...