Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как в STL создать множество (нужен ваш анализ кода)

26K
13 мая 2007 года
spb
5 / / 29.04.2007
Хочу создать множество пользовательскоготипа, с применением STL возникают проблемы с кодом:
Код:
class UserType
{
  int _int;
  char _char;
  public:
  UserType(int i1=0, char i2='a'):_int(i1),_char(i2){};
  int operator<(UserType& in) {return this->_int<in._int;};
};

int main(int argc, char* argv[])
{
        multiset<UserType> Set;
        UserType element1(3,'a'),element2(2,'a');
        cout<<(element2<element1);
        Set.insert(element1);
        getch();
        return 0;
}

Ошибка появляется в при применении Set.insert(element1) при сравнивании двух переменных типа UserType, но опреацию сравнени для них я определил...
помогите, как запустить?
3
13 мая 2007 года
Green
4.8K / / 20.01.2000
А почему бы тебе не использовать std::map ?
63
13 мая 2007 года
Zorkus
2.6K / / 04.11.2006
Странно. Оператор сам по себе перегружен корректно. Вопрос в том, что для multiset, возможно, нужно еще какие -то операторы перегрузить?
И еще - не пробовал делать банарным предикатом, отдельным, и передавать его в конструктор множества, вместо критерия сортировки по дефолту? Может быть, поможет.
3
13 мая 2007 года
Green
4.8K / / 20.01.2000
 
Код:
class UserType
{
public:
    bool operator<(const UserType& in) const {
        return (this->_int < in._int);
    }
};
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог