Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.11.2007, 17: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, 18:14   #2
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

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

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

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

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

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

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


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


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