Форум программистов
 
О проблемах, например, с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > C++ > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 06.11.2007, 18:47   #1
studenth
Форумчанин
 
Регистрация: 10.09.2007
Сообщений: 105
По умолчанию использование множества классов

Добрый день всем.
Вот случилась у меня небольшая проблемка.
Есть вектор классов, мне необходимо поместить все его элементы в множество, чтобы лишиться повторных значений.
использую множество, объявленное в <set>
ну, скажем, помещаю так...
Код:
//MySet объявлено как 
//set<MyClass> MySet;
//Data - это ветор классов, т.е., объявлен как
//vector<MyClass> Data;

MySet.insert(Data.begin(), Data.end());
Насколько я смог понять, он ругается на то, что не может определить имеется ли подобный элемент в множестве или нет. В общем ошибка происходит на этапе компиляции.
А мне очень бы хотелось решить свою задачу, именно таки образом.

Вопрос таков, можно ли помещять в множество переменную своего класса???

Заранее спасибо.
Бог сделал людей разными, а генерал Кольт уравнял шансы
studenth вне форума Ответить с цитированием
Старый 06.11.2007, 19:14   #2
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,331
По умолчанию

А не пробовал определять операции ==, != для своего класса?
Carbon вне форума Ответить с цитированием
Старый 07.11.2007, 10:50   #3
studenth
Форумчанин
 
Регистрация: 10.09.2007
Сообщений: 105
По умолчанию

Спасибо за помощь, разобрался!
Бог сделал людей разными, а генерал Кольт уравнял шансы
studenth вне форума Ответить с цитированием
Старый 07.11.2007, 18:26   #4
studenth
Форумчанин
 
Регистрация: 10.09.2007
Сообщений: 105
По умолчанию

ха ха ха...
Сам себе удивляюсь, я подменил функтор для упорядочивания элементов внутри множества (не стал делать через перегрузку операторов, хотя через нее тоже можно, путем перегруженного метода класса).
Так вот, переменные класса в множество я засунул.
Но, иногда, в это множество залетают повторные элементы...
Все проверено, что то тут не так.

Кто - нибудь помещал в множество элементы своего класса, и обеспечивал при этом уникальность?
Бог сделал людей разными, а генерал Кольт уравнял шансы
studenth вне форума Ответить с цитированием
Старый 07.11.2007, 20:32   #5
Alek86
Форумчанин
 
Регистрация: 25.09.2007
Сообщений: 189
По умолчанию

не мучь себя - кидай указатели
а уникальность, вроде, оператором < задается
Alek86 вне форума Ответить с цитированием
Старый 08.11.2007, 15:57   #6
studenth
Форумчанин
 
Регистрация: 10.09.2007
Сообщений: 105
По умолчанию

нет нет, все, ребята спасибо...
вроде бы все работает...
последовал первому совету, без притягивания за уши этого своего функтора. Мне показали как перегрузить операцию != через дружественный метод класса....
и точно, все заработало.
В общем, всем спасибо, проблема решена.
Бог сделал людей разными, а генерал Кольт уравнял шансы
studenth вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Шаблоны пользовательских классов MaTBeu Общие вопросы C/C++ 2 23.03.2008 20:02
агрегирование классов M_Yuri Общие вопросы Delphi 3 12.02.2008 19:31
Использование C++ классов из native DLL в .NET C# lexluther Общие вопросы C/C++ 1 31.01.2007 23:00
экспорт классов из Dll Alar Общие вопросы Delphi 0 29.10.2006 22:53


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS