Russian Qt Forum
Ноябрь 25, 2024, 07:28 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QMap. Очистка???  (Прочитано 9988 раз)
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« : Январь 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 );

Непонимающий??

« Последнее редактирование: Январь 28, 2009, 09:57 от kuzulis » Записан

ArchLinux x86_64 / Win10 64 bit
spirit
Гость
« Ответ #1 : Январь 28, 2009, 10:06 »

так. а что собственно смущает?  Улыбающийся
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #2 : Январь 28, 2009, 10:15 »

просто нужно было подтверждение "гуру" Улыбающийся

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

ArchLinux x86_64 / Win10 64 bit
Rcus
Гость
« Ответ #3 : Январь 28, 2009, 10:15 »

huh?
Код
C++ (Qt)
delete map.take(i);
Записан
ритт
Гость
« Ответ #4 : Январь 28, 2009, 10:16 »

Код:
delete map.take(5);
Записан
ритт
Гость
« Ответ #5 : Январь 28, 2009, 10:16 »

мля )
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #6 : Январь 28, 2009, 10:17 »

Цитировать
delete map.take(5);

это удалит и сам указатель и его обнулит и из мапы фсю инфу сотрет про него ?? точно? вы уверены? Улыбающийся
Записан

ArchLinux x86_64 / Win10 64 bit
Dendy
Гость
« Ответ #7 : Январь 28, 2009, 10:22 »

(Хором) Уверены. Только с обнулением вы что-то напутали, как можно обнулить переменную, которой не существует?
Записан
spirit
Гость
« Ответ #8 : Январь 28, 2009, 10:22 »

да, только не обнулится.
Записан
Karl-Philipp
Гость
« Ответ #9 : Январь 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.
Записан
ритт
Гость
« Ответ #10 : Январь 28, 2009, 10:36 »

неужели такая ветка нужна? я понимаю, что кому-то лениво читать документацию и надо чтобы пальчиком ткнули...но ведь, если кому-то лениво искать это в ассистанте /* который всегда под рукой */, то ему будет лениво искать это и по форуму.
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #11 : Январь 28, 2009, 10:48 »

Улыбающийся ассистент ассистентом - но реальнее спросить еще и у знающих людей..

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

ArchLinux x86_64 / Win10 64 bit
ритт
Гость
« Ответ #12 : Январь 28, 2009, 11:00 »

а вот в том-то и дело, что у нас теперь нет "закрытия" тем - есть только архив и блокировка.
вот если бы ты сам удалил свою тему, то и придраться было бы не к чему/кому Улыбающийся
Записан
Dendy
Гость
« Ответ #13 : Январь 28, 2009, 11:12 »

2 Константин
От накинулся. Хай спрашует.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.144 секунд. Запросов: 23.