Seite 1 von 1
QMap<QString,QMap>
Verfasst: 8. September 2004 06:12
von Lykurg
Hi,
ich brauch QMap<QString,QMap>, also dass ich dann ein 3-dim Array habe. (map["foo"]["bar"] = "value")
Danke,
Lykurg
Verfasst: 8. September 2004 14:18
von miketech
Hi,
funktioniert nicht sowas wie:
QMap <QString, QMap<QString, Irgendwas>> myMap
?
Mike
Verfasst: 8. September 2004 14:55
von Lykurg
miketech hat geschrieben:
QMap <QString, QMap<QString, Irgendwas>> myMap
Äh, und da war mal wieder die Sicht auf den Wald durch die Bäume verdeckt!
Hab einfach nicht dran gedacht das zweite QMap auch nich zu definieren.
Danke,
Lykurg
Verfasst: 31. August 2010 17:00
von Metzlmane
Und wie fülle ich jetzt das innere QMap?
Verfasst: 31. August 2010 17:08
von danielp1000
Kann es sein, dass du das innere QMap zuerst definierst, dann füllst und dann das oberste QMap damit füllst?
Verfasst: 31. August 2010 17:19
von Metzlmane
Könntest du mir bitte ein Beispiel geben?
Ich habe schon alles mögliche versucht... sitze wohl gerade auf dem Schlauch
Verfasst: 31. August 2010 17:42
von padreigh
Code: Alles auswählen
srand(time(0));
QStringList sl1(QString("A,B,C,D,E,F,G,H").split(","));
QStringList sl2(QString("1,2,3,4,5,6,7,8").split(","));
QMap<QString,QMap<QString,QVariant> > outer;
foreach (QString aus1, sl1)
{
QMap<QString,QVariant> inner;
foreach (QString aus2, sl2)
{
inner.insert(aus2,QString::number(rand()%2000));
}
outer.insert(aus1,inner);
}
foreach(const QString oKey, outer.keys())
{
foreach (QString iKey, outer[oKey].keys())
qDebug() << "out [" << oKey << "][" << iKey << "] " << outer[oKey].value(iKey).toString();
}
qDebug() << "[B][1]" << outer["B"]["1"].toString();
Verfasst: 31. August 2010 17:58
von Metzlmane
wunderbar, vielen Dank!
Verfasst: 31. August 2010 19:09
von padreigh
Ich wollts mir eigentlich verkneifen ... aber warum das rumgeschachtel ... Es wäre auch
QMap<QPair<QString,QString>, QVariant> möglich ... oder ein
Code: Alles auswählen
private:
QMap <QString,QVariant> myMap;
QString makeKey(const QString & a, const QString & b) { return a+":"+b;}
public:
QVariant getValue(const QString & a, const QString & b)
{
return myMap.value(makeKey(a,b));
}
void addToMap(const QString & a, const QString & b, QVariant & v)
{
myMap.insert(makeKey(a,b),v);
}
Der einzige mir spontan einfallende Vorteil der QMap Schachtelung wäre, wenn du dir eine komplette Map aus der äusseren rausnimmst und sie dann über perRef irgendwas mitgibst ...