У меня есть программа на C ++, которая организует несколько курсов колледжа, которые я хочу пройти. Это делается путем ввода данных из консоли (с такими вещами, как код курса, описание и т. Д.), Организации каждого курса по основным направлениям и последующего вывода всего этого в хорошо отформатированный, легко читаемый HTML-файл. Позже я планирую прореживать список с помощью множества исследований.
Я реализую каждый курс как объект, который добавляется в список, когда я заканчиваю ввод информации. Когда я закончу со всей информацией, list::sort
должен отсортировать каждый курс по основным и кодам (например, CSE 380 идет после CSE 110, а оба - до ECO 108). Форматирование потом легко.
Для сортировки мне нужно реализовать простую функцию, потому что, хотя это не является технически обоснованным, я получаю странную ошибку, я полагаю, из-за отсутствия оператора «<» для моего класса Course. Моя функция выглядит так: </p>
bool courseCompare(Course course1, Course course2) { return course1.getCode() < course2.getCode(); }
Где getCode()
возвращает небольшую строку, содержащую код курса в трехбуквенном / цифровом формате (например, «AMS 401»). Очевидно, это должно облегчить алфавитный порядок.
Я вызываю метод сортировки следующим образом;
all_the_courses.sort(courseCompare);
Где all_the_courses
- список.
Однако, когда бы я ни использовал std :: list, программа просто останавливается. Не вылетает, ничего не выводит, просто сидит и не отвечает, когда я что-то ввожу и нажимаю Enter. Есть идеи?