Попробуйте вместо этого использовать функцию сравнения:
bool simpleComparator(const Student& first, const Student& second){
return (first.numberOfHrsAvailable < second.numberOfHrsAvailable);
}
Обратите внимание, что функция сравнения не является членом вашего класса TeamMember, и передача константных ссылок предотвращает ненужное копирование.
Вы можете сделать еще один шаг и определить метод сравнения для студентов
bool Student::operator<(const Student& first, const Student& second)
{
return (first.numberOfHrsAvailable < second.numberOfHrsAvailable);
}
Теперь вы можете просто вызвать метод сортировки для ваших студентов, и у него будет метод сравнения:
std::sort(studentIter.begin(), studentIter.end());
Однако в этом случае я рекомендую первый подход, если вы не хотите всегда сравнивать студентов по количеству доступных часов. Например, это может сбить с толку другого программиста:
if ( studentA < studentB )
{
// Do stuff
}
Это может сбивать с толку, потому что не совсем понятно, как бы вы сравнили двух студентов (средний балл, посещаемость, количество часов, рост, IQ и т. Д.)