![]() |
|
Модераторы: Poseidon |
![]()
|
|
| Metalex |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 635 Регистрация: 22.10.2008 Где: Украина-ZPсity Репутация: нет Всего: нет |
Мне нужно отсортировать динамический массив обьектов класса Film.
Посмотрите, пожалуйста, мой код.. Я уверен, что он почти правильный.. Основные ошибки, которые я не могу исправить:
почему-то не видит i, j и
не катит такое обращение... A[j-1].name тоже не катит... Пересмотрите, пожалуйста, мой код на наличие грубых ошибок.. И помогите разобратся с этими Огромное спасибо. -------------------- Don't let the system get you down. |
||||||
|
|||||||
| ИванМ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1260 Регистрация: 19.6.2006 Где: СПб Репутация: 13 Всего: 23 |
не видит потому что i, j это члены класса Film. Надо обращаться к конкретному объекту класса или делать i, j статическими или глобальными. И вообще для сортировки существуют стандартные алгоритмы (std::sort). Достаточно определить оператор < или написать функцию сравнения 2х элементов. Добавлено @ 00:47 Типа такого:
И конечно в идеале i и j надо сделать локальными переменными. Плохо когда в классе всякий мусор. Это сообщение отредактировал(а) ИванМ - 5.3.2010, 00:48 |
|||
|
||||
| Metalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 635 Регистрация: 22.10.2008 Где: Украина-ZPсity Репутация: нет Всего: нет |
Про стандартные алгритмы не знал.. Благодарю! Обьясните еще, пожалуйста, вот эту строку:
-------------------- Don't let the system get you down. |
|||
|
||||
| t_gran |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 621 Регистрация: 13.11.2007 Где: г.Усть-Илимск Репутация: 33 Всего: 37 |
Metalex, мог бы человеку и плюс поставить!
-------------------- Я знаю, что ничего не знаю© Сократ ![]() |
|||
|
||||
| Metalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 635 Регистрация: 22.10.2008 Где: Украина-ZPсity Репутация: нет Всего: нет |
t_gran, поставлю, как решу вопрос обязательно
-------------------- Don't let the system get you down. |
|||
|
||||
| ИванМ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1260 Регистрация: 19.6.2006 Где: СПб Репутация: 13 Всего: 23 |
||||
|
||||
| Metalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 635 Регистрация: 22.10.2008 Где: Украина-ZPсity Репутация: нет Всего: нет |
ИванМ, сделал по вашим наставлениям..
Получил такой код:
Компиляция и построение прошло успешно.. Выполнение доходит до сортировки и выбивает ошибки: В чем может быть дело? -------------------- Don't let the system get you down. |
|||
|
||||
| ИванМ |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1260 Регистрация: 19.6.2006 Где: СПб Репутация: 13 Всего: 23 |
в общем не правильно я написал. Надо не sort(A, A+n+1), а sort(A, A+n);
и еще добавить оператор= в класс
Если все вместе, то так (я еще конструктор чуть переделал, то бы вводилось char*, а не char, можешь оставить как было если так нравится)
А вообще в идеале лучше создавать объекты Film динамически и потом помещать его в list (а не в массив) и потом сортировать. Так и легче и не нужно копировать лишний раз объекты и код получится короче. Добавлено через 7 минут и 52 секунды Еще как вариант:
Здесь лучше что не создаем лишних копий. И короче получается. Это сообщение отредактировал(а) ИванМ - 9.3.2010, 01:04 |
||||||
|
|||||||
| Metalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 635 Регистрация: 22.10.2008 Где: Украина-ZPсity Репутация: нет Всего: нет |
Вот немного переделал:
Но, почему-то, когда доходит до сортировки, программа выбивает ошибки.... Помогите мне их найти и устранить, пожалуйста! -------------------- Don't let the system get you down. |
|||
|
||||
| t_gran |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 621 Регистрация: 13.11.2007 Где: г.Усть-Илимск Репутация: 33 Всего: 37 |
Вам помогать себе дороже. За что минус-то поставили? Я Вас пожурил, но репутацию Вам же не порчу! А-а-а-а... Наверно это у Вас такая благодарность за помощь тут и тут. Большое спасибо Dov за восстановление! Что по мне, то я репутацию вам портить не буду, просто больше не буду пытаться помочь. Это сообщение отредактировал(а) t_gran - 11.3.2010, 06:03 -------------------- Я знаю, что ничего не знаю© Сократ ![]() |
|||
|
||||
| Metalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 635 Регистрация: 22.10.2008 Где: Украина-ZPсity Репутация: нет Всего: нет |
t_gran, дело ваше.
-------------------- Don't let the system get you down. |
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |