Russian Qt Forum

Qt => Общие вопросы => Тема начата: sersar от Февраль 28, 2009, 13:30



Название: Многомерный массив
Отправлено: sersar от Февраль 28, 2009, 13:30
Простой вопрос вызвал у меня затруднения. Как создать многомерный массив? Как с ним работать? Мне необходим вот такой:
Код:
Array
(
    [1111] => Array
        (
            [AB] => aaa
            [CD] => bbb
            [EF] => ccc
        )
    [2222] => Array
        (
            [AB] => aaa
            [CD] => bbb
            [EF] => ccc
        )
)


Название: Re: Многомерный массив
Отправлено: BRE от Февраль 28, 2009, 13:56
Самое простое это что-то типа такого:
Код
C++ (Qt)
QList< QList<QString> > list;
 
QMap< QString, QMap<QString, QString> > map;
 


Название: Re: Многомерный массив
Отправлено: sersar от Март 02, 2009, 12:51
Да. Мне подходит в таком виде:
Код:
QMap< QString, QMap<QString, QString> > map;
Вопрос:
1. Как выполнить insert?
2. Как получить значение массива (value)?
3. Как пройтись по-массиву (foreach)?


Название: Re: Многомерный массив
Отправлено: pastor от Март 02, 2009, 12:58
1. Как выполнить insert?
2. Как получить значение массива (value)?
3. Как пройтись по-массиву (foreach)?

QMap (http://doc.trolltech.com/4.4/qmap.html)
QMapIterator (http://doc.trolltech.com/4.4/qmapiterator.html)


Название: Re: Многомерный массив
Отправлено: sersar от Март 02, 2009, 13:09
1. Как выполнить insert?
2. Как получить значение массива (value)?
3. Как пройтись по-массиву (foreach)?

QMap (http://doc.trolltech.com/4.4/qmap.html)
QMapIterator (http://doc.trolltech.com/4.4/qmapiterator.html)
К QMap вопросов нет! Я спрашиваю, как работать с многомерным массивом?


Название: Re: Многомерный массив
Отправлено: BRE от Март 02, 2009, 13:20
 ??? pastor же тебе ссылки привел... Нужно использовать методы QMap.
1. Как выполнить insert?
Код
C++ (Qt)
map[ "index2" ][ "item5" ] = "value";

2. Как получить значение массива (value)?
Код
C++ (Qt)
QString value = map[ "index2" ][ "item5" ];

3. Как пройтись по-массиву (foreach)?
Используя итератор QMapIterator.