В 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?
Я думаю, все, что вам нужно сделать, чтобы добавить значение в QStringList в вашем QHash:
QStringList & mylist = myhash[key]; // will create and insert an empty QStringList if necessary
mylist.append(value);