QMap<QString,QMap>
QMap<QString,QMap>
Hi,
ich brauch QMap<QString,QMap>, also dass ich dann ein 3-dim Array habe. (map["foo"]["bar"] = "value")
Danke,
Lykurg
ich brauch QMap<QString,QMap>, also dass ich dann ein 3-dim Array habe. (map["foo"]["bar"] = "value")
Danke,
Lykurg
-
danielp1000
- Beiträge: 8
- Registriert: 24. Mai 2010 18:41
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();
Ich wollts mir eigentlich verkneifen ... aber warum das rumgeschachtel ... Es wäre auch QMap<QPair<QString,QString>, QVariant> möglich ... oder ein
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 ...
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 ...