2015-04-23 2 views
2

Я пытаюсь обернуть голову вокруг раздела в моем проекте. У меня есть структурный массив, состоящий из обычных переменных. (Первый & Фамилия, ID, имя пользователя, результаты испытаний, Среднее & буквенные)Сортировка структуры массива с двумя критериями C++

Я должен сортировать по классам (это не сложно), но тогда это также выглядит, что я должен был бы сортировать по номеру от самого низкого до самого высокого.

Не могу понять, как действовать. Любые советы будут очень признательны!

ответ

3

Первый сортировать по ID-номеру с использованием std::sort, а затем сортировать по классам, используя std::stable_sort. Таким образом, массив будет сортироваться по классам, а среди студентов с одинаковым классом он будет отсортирован по идентификатору.

Другой, возможно, более простой способ (но гораздо менее круто), это просто реализовать функцию сравнения, которая сначала проверяет класс, а затем ID:

if (a.grade == b.grade) 
    return a.id < b.id; 
return a.grade < b.grade; 
+0

Спасибо за ответ! Я включу эту концепцию! – dmatthews1

+0

[Может быть полезно получить массив для работы с std :: sort] (http://stackoverflow.com/questions/5897319/how-to-use-stdsort-to-sort-an-array-in-c) – user4581301

Смежные вопросы