Russian Qt Forum

Qt => Общие вопросы => Тема начата: kuzulis от Январь 28, 2009, 09:48



Название: QMap. Очистка???
Отправлено: kuzulis от Январь 28, 2009, 09:48
Доброго дня...

Суть вопроса в следующем: например у меня есть код в котором я создаю объекты типа MyClass и указатели на них заношу в QMap
Код:
QMap <int, *TMyClass> map

for (int i=0;i<10;++i) {
   TMyClass *myclass = new TMyClass ;
   map.insert(i, myclass);
}

и допустим где-то в процессе работы мне нужно удалить объект (класс) которому соответствует key = 5 и + удалить и запись об этом объекте и о соответствующем ему ключе из мапы!!!

мне поступить так:
Код:
TMyClass *myclass = map.value( 5 );
delete myclass;
myclass = 0;
map.remove ( 5 );

?????



Название: Re: QMap. Очистка???
Отправлено: spirit от Январь 28, 2009, 10:06
так. а что собственно смущает?  :)


Название: Re: QMap. Очистка???
Отправлено: kuzulis от Январь 28, 2009, 10:15
просто нужно было подтверждение "гуру" :)

ЗЫ: собираю инфу по крупицам - чтобы потом ЖАХНУТЬ! :)


Название: Re: QMap. Очистка???
Отправлено: Rcus от Январь 28, 2009, 10:15
huh?
Код
C++ (Qt)
delete map.take(i);


Название: Re: QMap. Очистка???
Отправлено: ритт от Январь 28, 2009, 10:16
Код:
delete map.take(5);


Название: Re: QMap. Очистка???
Отправлено: ритт от Январь 28, 2009, 10:16
мля )


Название: Re: QMap. Очистка???
Отправлено: kuzulis от Январь 28, 2009, 10:17
Цитировать
delete map.take(5);

это удалит и сам указатель и его обнулит и из мапы фсю инфу сотрет про него ?? точно? вы уверены? :)


Название: Re: QMap. Очистка???
Отправлено: Dendy от Январь 28, 2009, 10:22
(Хором) Уверены. Только с обнулением вы что-то напутали, как можно обнулить переменную, которой не существует?


Название: Re: QMap. Очистка???
Отправлено: spirit от Январь 28, 2009, 10:22
да, только не обнулится.


Название: Re: QMap. Очистка???
Отправлено: Karl-Philipp от Январь 28, 2009, 10:22
kuzulis, а вы для пущей верности ;) загляните в Ассистант:
Цитировать
T QMap::take ( const Key & key )
Removes the item with the key key from the map and returns the value associated with it.


Название: Re: QMap. Очистка???
Отправлено: ритт от Январь 28, 2009, 10:36
неужели такая ветка нужна? я понимаю, что кому-то лениво читать документацию и надо чтобы пальчиком ткнули...но ведь, если кому-то лениво искать это в ассистанте /* который всегда под рукой */, то ему будет лениво искать это и по форуму.


Название: Re: QMap. Очистка???
Отправлено: kuzulis от Январь 28, 2009, 10:48
:) ассистент ассистентом - но реальнее спросить еще и у знающих людей..

всем спасибо! можно закрывать!


Название: Re: QMap. Очистка???
Отправлено: ритт от Январь 28, 2009, 11:00
а вот в том-то и дело, что у нас теперь нет "закрытия" тем - есть только архив и блокировка.
вот если бы ты сам удалил свою тему, то и придраться было бы не к чему/кому :)


Название: Re: QMap. Очистка???
Отправлено: Dendy от Январь 28, 2009, 11:12
2 Константин
От накинулся. Хай спрашует.