Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сортировка элементов вектора 
V
    Опции темы
lexa107
Дата 28.4.2010, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 25.4.2010
Где: Минск

Репутация: нет
Всего: нет



Так это потому что ты при перегрузке функций передаёшь одни и те же параметры. Подожди, я сейчас попробую поправить твой код
PM MAIL ICQ   Вверх
m9yt
Дата 28.4.2010, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 173
Регистрация: 27.2.2010

Репутация: нет
Всего: нет



Надо как-то сделать, чтобы различные параметры передавались...
PM MAIL   Вверх
lexa107
Дата 28.4.2010, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 25.4.2010
Где: Минск

Репутация: нет
Всего: нет



У тебя address и Email - это наследники одного класса ID. Так?
Где ты задаёшь поле id?
PM MAIL ICQ   Вверх
m9yt
Дата 28.4.2010, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 173
Регистрация: 27.2.2010

Репутация: нет
Всего: нет



Цитата(lexa107 @ 28.4.2010,  17:37)
Так это потому что ты при перегрузке функций передаёшь одни и те же параметры. Подожди, я сейчас попробую поправить твой код

Опередил)

Добавлено через 5 минут и 50 секунд
Цитата(lexa107 @ 28.4.2010,  17:41)
У тебя address и Email - это наследники одного класса ID. Так?
Где ты задаёшь поле id?

address наследник ID, а Email наследник address.
поле id задаю 

Код

class ID{
public:
    int id;
public:
    ID(){id=0;}
    ID(int _id){id=_id;}
    virtual void show()=0;
    virtual void Input()=0;
};


Код

address::address(int _id, string _adrs):ID(_id)
{
    adrs=_adrs;
}



Код

void address::Input()
{
    char s[10];
    cout<<"Идентификатор:";cin.getline(s,10);
    id=atoi(s);
    cout<<"Адрес:";getline(cin, adrs, '\n');
}



Код

void Programm::CreateAddress()
{
    ID* p;
    cout<<"<Создание объекта Адрес...>"<<endl;
    p=new address;
    p->Input();
    collection->push_back(p);
}

PM MAIL   Вверх
lexa107
Дата 28.4.2010, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 25.4.2010
Где: Минск

Репутация: нет
Всего: нет



Попробуй просто написать:

Код

class compare{
public:
    bool operator()(ID* obj1, ID* obj2)
    {    
        return obj1->id<obj2->id;
    }
};


Это сообщение отредактировал(а) lexa107 - 28.4.2010, 17:53
PM MAIL ICQ   Вверх
m9yt
Дата 28.4.2010, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 173
Регистрация: 27.2.2010

Репутация: нет
Всего: нет



может так?
Код

class compare{
public:
    bool operator()(address* obj1, address* obj2)
    {
    
        return obj1->id<obj2->id;
    }
    bool operator()(Email * obj1, Email * obj2)
    {
      
        return obj1->id<obj2->id;
    }
}


PM MAIL   Вверх
lexa107
Дата 28.4.2010, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 25.4.2010
Где: Минск

Репутация: нет
Всего: нет



Цитата(m9yt @ 28.4.2010,  17:52)
может так?
Код

class compare{
public:
    bool operator()(address* obj1, address* obj2)
    {
    
        return obj1->id<obj2->id;
    }
    bool operator()(Email * obj1, Email * obj2)
    {
      
        return obj1->id<obj2->id;
    }
}


Может и так прокатит
PM MAIL ICQ   Вверх
m9yt
Дата 28.4.2010, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 173
Регистрация: 27.2.2010

Репутация: нет
Всего: нет



Цитата(lexa107 @ 28.4.2010,  17:54)
Цитата(m9yt @ 28.4.2010,  17:52)
может так?
Код

class compare{
public:
    bool operator()(address* obj1, address* obj2)
    {
    
        return obj1->id<obj2->id;
    }
    bool operator()(Email * obj1, Email * obj2)
    {
      
        return obj1->id<obj2->id;
    }
}


Может и так прокатит

Не катит...((
error C2664: bool compare::operator ()(address *,address *): невозможно преобразовать параметр 1 из 'ID *' в 'address *'
PM MAIL   Вверх
lexa107
Дата 28.4.2010, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 25.4.2010
Где: Минск

Репутация: нет
Всего: нет



Мой способ тоже никак?

Это сообщение отредактировал(а) lexa107 - 28.4.2010, 18:07
PM MAIL ICQ   Вверх
m9yt
Дата 28.4.2010, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 173
Регистрация: 27.2.2010

Репутация: нет
Всего: нет



Цитата(lexa107 @ 28.4.2010,  17:49)
Попробуй просто написать:

Код

class compare{
public:
    bool operator()(ID* obj1, ID* obj2)
    {    
        return obj1->id<obj2->id;
    }
};

Вот это прокатило!)))

Сейчас объект сортируются по id в порядке возрастания, независимо от типа класса!
Думаю, мы добились нужного?
PM MAIL   Вверх
lexa107
Дата 28.4.2010, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 25.4.2010
Где: Минск

Репутация: нет
Всего: нет



Тебе видней, добились или нет smile 
PM MAIL ICQ   Вверх
m9yt
Дата 28.4.2010, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 173
Регистрация: 27.2.2010

Репутация: нет
Всего: нет



Цитата(lexa107 @ 28.4.2010,  18:15)
Тебе видней, добились или нет smile

Спасибо тебе.
У меня впереди сортировка слиянием.Если что, напишу в личку)
PM MAIL   Вверх
lexa107
Дата 28.4.2010, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 25.4.2010
Где: Минск

Репутация: нет
Всего: нет



удалил

Это сообщение отредактировал(а) lexa107 - 28.4.2010, 18:28
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0592 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.