Ответы @ Jarod42 и @doug будут работать наверняка, но я думаю, что это решение более читабельно.
int getSeconds(const people &p){
const min2sec = 60.0;
return p.min * min2sec + p.sec;
}
bool comp(const people &p1, const people &p2) {
return (getSeconds(p1) < getSeconds(p2));
}
Решение @doug может дать преимущество в производительности, поскольку сначала вы сравниваете минуты и только если они не равны, вы смотрите на секунды.Если производительность оказывается проблемой (и измерения подтверждают, что это ваша горячая точка), вы можете оптимизировать это.Имейте в виду, что структура данных содержит избыточные данные (string name;
) для этой операции, которые могут снизить производительность из-за застревания строк в кэше.