| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > [C++]Сортировка динамического массива обьекта клас |
| Автор: Metalex 5.3.2010, 00:16 | ||||||
Мне нужно отсортировать динамический массив обьектов класса Film.
Посмотрите, пожалуйста, мой код.. Я уверен, что он почти правильный.. Основные ошибки, которые я не могу исправить:
почему-то не видит i, j и
не катит такое обращение... A[j-1].name тоже не катит... Пересмотрите, пожалуйста, мой код на наличие грубых ошибок.. И помогите разобратся с этими Огромное спасибо. |
| Автор: ИванМ 5.3.2010, 00:32 | ||
не видит потому что i, j это члены класса Film. Надо обращаться к конкретному объекту класса или делать i, j статическими или глобальными. И вообще для сортировки существуют стандартные алгоритмы (std::sort). Достаточно определить оператор < или написать функцию сравнения 2х элементов. Добавлено @ 00:47 Типа такого:
И конечно в идеале i и j надо сделать локальными переменными. Плохо когда в классе всякий мусор. |
| Автор: Metalex 5.3.2010, 09:11 |
| Про стандартные алгритмы не знал.. Благодарю! Обьясните еще, пожалуйста, вот эту строку: |
| Автор: t_gran 5.3.2010, 10:13 |
| Metalex, мог бы человеку и плюс поставить! |
| Автор: Metalex 5.3.2010, 13:48 |
| t_gran, поставлю, как решу вопрос обязательно |
| Автор: ИванМ 6.3.2010, 15:41 |
| Metalex, Означает, что сортировать надо грубо говоря от A до A+n. Второй параметр должен быть больше верхней границы на единицу. |
| Автор: Metalex 8.3.2010, 23:40 | ||
| ИванМ, сделал по вашим наставлениям.. Получил такой код:
Компиляция и построение прошло успешно.. Выполнение доходит до сортировки и выбивает ошибки: http://uaimages.com/viewer.php?id=95459608.03.jpg В чем может быть дело? |
| Автор: ИванМ 9.3.2010, 01:02 | ||||||
| в общем не правильно я написал. Надо не sort(A, A+n+1), а sort(A, A+n); и еще добавить оператор= в класс
Если все вместе, то так (я еще конструктор чуть переделал, то бы вводилось char*, а не char, можешь оставить как было если так нравится)
А вообще в идеале лучше создавать объекты Film динамически и потом помещать его в list (а не в массив) и потом сортировать. Так и легче и не нужно копировать лишний раз объекты и код получится короче. Добавлено через 7 минут и 52 секунды Еще как вариант:
Здесь лучше что не создаем лишних копий. И короче получается. |
| Автор: Metalex 10.3.2010, 20:54 | ||
Вот немного переделал:
Но, почему-то, когда доходит до сортировки, программа выбивает ошибки.... Помогите мне их найти и устранить, пожалуйста! |
| Автор: t_gran 11.3.2010, 05:55 | ||
Вам помогать себе дороже. За что минус-то поставили? Я Вас пожурил, но репутацию Вам же не порчу! А-а-а-а... Наверно это у Вас такая благодарность за помощь http://forum.vingrad.ru/topic-291070.html и http://forum.vingrad.ru/topic-291674.html. Большое спасибо http://forum.vingrad.ru/users/dov за восстановление! Что по мне, то я репутацию вам портить не буду, просто больше не буду пытаться помочь. |
| Автор: Metalex 11.3.2010, 09:08 |
| t_gran, дело ваше. |