![]() |
|
|
![]()
|
|
| BigLes |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 12.1.2010 Репутация: нет Всего: нет |
мне нужно сделать контейнер на клас а потом его заполнить, но когда я по итертору обращаюсь к следующепу елементу, зависает программма. Помогите пожалуйста.
#include <set> using namespace std; class nameio { int opprt; char name[20]; public: int getopprt() { return opprt; }; void setname(char _k[20]) { strcpy(name,_k); }; void setopprt(int _h) { opprt=_h; }; char *getname() { return name; } }; multiset<nameio> im; multiset<nameio>::iterator it; ... void g() { it=im.begin(); } void prodaga(int h,char k[20]) { (*it).setopprt(h); (*it).setname(k); ++it; } вот где-то здесь она и виснет... |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
1) multiset требует определение оператора < или соответствующего функтора, а я его у тебя не вижу.
2) поскольку ты меняешь все члены данных, каков бы ни был смысл сравнения, оно наверняка становиться неверным. Multiset - это сортированный набор данных. Меняя значения данных, ты разрушаешь сортировку и сам набор, соответсвенно. Я вообще не понимаю, как это у тебя скомпилировалось. По идее, данные в наборе считаются константными (и он предоставляет только константный итератор). Хотя это может зависить от реализации STL. Твоя - явно нехорошая, раз позволяет жто компилировать. -------------------- ... |
|||
|
||||
| BigLes |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 12.1.2010 Репутация: нет Всего: нет |
Earnest знаю что константный, знал бы ещё это наш препод( ему по-нормальному не подходит, надо делать так...
|
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Возможно, ты его неправильно понял? Нельзя менять ключи!
-------------------- ... |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |