Сортировка векторов через функцию sort
У меня вопрос связанный с сортировкой.
У меня есть 2 структуры:
struct Exam {
string subject;
int numQuestions;
vector<int> correctAnswers;
};
struct Student {
int id;
string name;
vector<Exam> exams;
double averageGrade;
};
И объявляю их через вектора
vector<Exam> exams;
vector<Student> students;
Прошу заметить что в структуре Student
дополнительно объявлен массив Exam
.
В чём сам вопрос
Когда я сделаю сортировку
sort(exams.begin(), exams.end(),correctSort);
все нормально но если я делаю сортировку в
for (const auto& student : students)
{
sort(student.exams.begin(), student.exams.end(),correctSort);
}
она сыпется, почему так и как это исправить
bool correctSort(const Exam& a, const Exam& b) {
return a.subject < b.subject;
}
Источник: Stack Overflow на русском