Russian Qt Forum

Qt => Вопросы новичков => Тема начата: woka от Июнь 12, 2012, 22:50



Название: вложенные STL контейнеры
Отправлено: woka от Июнь 12, 2012, 22:50
Доброго времени суток!
Пишу программу с вложенными qSTL контейнерами контейнерами :
Код:
QMap<QString, QPair<QString, int> > m;
и не могу ничего записать в них из за неумения пользования вложенными контейнерами. Подскажите как записать данные в каждый их элемент.


Название: Re: вложенные STL контейнеры
Отправлено: mutineer от Июнь 12, 2012, 22:55
Код:
QPair<QString, int> item("string", 0);
m.insert("key", item);

или

Код:
m.insert("key", qMakePair(QString("string"), 0));


Название: Re: вложенные STL контейнеры
Отправлено: woka от Июнь 12, 2012, 23:14
спасибо большое! очень помогли!


Название: Re: вложенные STL контейнеры
Отправлено: woka от Июнь 13, 2012, 16:55
ещё подскажите как прочитать и изменить данные из этой структуры, я делаю так
Код:
QMap<QString, QPair<QString, int> >::iterator it;
it = m.begin();
qDebag()<<(*it).second;
она выводит  int-овое значение.
Код:
qDebug()<<(*it).first;
а так Qstring из пары. как мне узнать QString из QMap?
и сразу как изменять эти значения


Название: Re: вложенные STL контейнеры
Отправлено: mutineer от Июнь 13, 2012, 16:59
как мне узнать QString из QMap?

it.key();

и сразу как изменять эти значения
Почитать доку по контейнерам


Название: Re: вложенные STL контейнеры
Отправлено: woka от Июнь 13, 2012, 17:42
it.key();
извиняюсь. я писал
Код:
it.key; (*it).key(); *it.key();
, да и так вроде бы писал, но не работало. спасибо


Название: Re: вложенные STL контейнеры
Отправлено: alexis031182 от Июнь 13, 2012, 17:46
извиняюсь. я писал
Код:
it.key; (*it).key(); *it.key();
, да и так вроде бы писал, но не работало. спасибо
Все три варианта неверны. Не мучайтесь, посмотрите справку (https://qt-project.org/doc/qt-4.8/qmap-iterator.html)