crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> QMap - перемещаемость элементов?
Гость_Гость_*
сообщение 3.8.2009, 21:40
Сообщение #1





Гости








    


ЕМНИП stl::map<> дает гарантии что обьект после помещения в map останется неподвижным. У меня в QMap другой контейнер, както не хотелось бы его двигать и желательно иметь ссылки для быстрого доступа.

Понадобилось перебрать map. Итераторы в стиле STL выдали доступ приватным функциям, в хедерах QT комментарии - наверно это никому не нужно, поэтому перемещено в приватную часть. Есть итераторы в стиле жава
Раскрывающийся текст
 QMap<int, QWidget *> map;
...
QMapIterator<int, QWidget *> i(map);
while (i.hasNext()) {
     i.next();
     qDebug() << i.key() << ": " << i.value();
}


Смущает что есть только константный const T & QMapIterator::value () const



Волатильны ли обьекты в QMap и почему константное &value ?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
rnd
  опции профиля:
сообщение 4.8.2009, 19:36
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 54
Регистрация: 22.7.2009
Пользователь №: 930

Спасибо сказали: 1 раз(а)




Репутация:   0  


QMapIterator<Key, T> allows you to iterate over a QMap (or a QMultiMap). If you want to modify the map as you iterate over it, use QMutableMapIterator instead.

описание

итераторы в QMap при вставке/удалении не инвалидируются

почему, кстати, не воспользоваться обычными, если джава не нравятся?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Гость_*
сообщение 4.8.2009, 23:40
Сообщение #3





Гости








    


Спасибо! Mutable не заметил

Цитата(rnd @ 4.8.2009, 19:36) *
почему, кстати, не воспользоваться обычными, если джава не нравятся?

ошибся гдето, там есть несколько приватных операторов, но действительно не нужных
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


5 чел. читают эту тему (гостей: 5, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.11.2024, 12:50