qt — Создание QHash с QStringList в переполнении стека

В C ++ я пытаюсь построить специализированный QHash, как это:

QHash<QString, QStringList> myhash;

Так что я могу хранить данные этого типа:

QHash key    QStringList values
----------   ------------------
A            1
2
3
B            5
6

У меня проблемы с синтаксисом C ++, чтобы правильно построить хэш и как получить значения хеша. Например, если дано B, я хочу зациклить и вернуть 5,6.

Вот моя взломанная попытка логики добавить к хешу при добавлении новой пары ключ-значение:

QHash<QString, QStringList> myhash;

key = "A";
value = "2";

if (myhash.contains(key) ) {
QStringList mylist = myhash.value(key);
mylist.append(value);
} else {
QStringList mylist;
mylist.append(value);
myhash.insert( key, mylist);
}

Я не уверен, что это работает, так как я не смог создать логику извлечения цикла для myhash.

Может ли кто-нибудь помочь мне собрать и извлечь данные из такого QHash?

0

Решение

Я думаю, все, что вам нужно сделать, чтобы добавить значение в QStringList в вашем QHash:

QStringList & mylist = myhash[key];  // will create and insert an empty QStringList if necessary
mylist.append(value);
1

Другие решения


По вопросам рекламы [email protected]