Map in Map speichern
-
huhu,wie der Titel vermuten lässt möchte ich eine Map in einer anderen Map speichern, in etwa so...
class KlasseKlasse {
public: ... ... ... }; typedef map<uint32_t, KlasseKlasse*> Map_1; map<uint32_t, Map_1*> Map_2;insert hab ich dann wie folgt geregelt
Map_1 MapVomTypMap_1; MapVomTypMap_1.insert(pair<uint32_t, KlasseKlasse*>(000000,new KlasseKlasse())); Map_2.insert(pair<uint32_t, Map_1>(zahl, MapVomTypMap_1));und jetzt kommts, die Ausgabe klappt noch nicht ganz

map<uint32_t, Map_1*>::iterator it_ausgabe = Map_2.begin(); while(it_ausgabe != Map_2.end()) { cout << it_ausgabe->first << endl; //geht, alle werte die drin sein sollen sind auch drin cout << it_ausgabe->second->first << endl; // geht nicht :( it_ausgabe++; }Fehlermeldung
Trace_Reader.cpp:630:35: Fehler: Basisoperand von »->« hat Nicht-Zeiger-Typ »std::map<unsigned int, FunctionSummary*>«
hab schon enn bisschen probiert und gesucht bevor ich hier schreibe, die Fragen zur Thematik:
1. Geht das mit dem einfügen auch einfacher, sieht nicht so schön aus?
2. funktioniert das so überhaupt?LG nippler

-
for(map<uint32_t, Map_1*>::iterator it_ausgabe = Map_2.begin(); it_ausgabe != Map_2.end(); ++it_ausgabe) { cout << it_ausgabe->first << endl << endl; // Gibt den Schlüssel der äußeren Map zurück. // Iteriert über die innere Map. for(Map_1::iterator it_innere_map = it_ausgabe->second->begin(); it_innere_map != it_ausgabe->second->end(); ++it_innere_map) { cout << it_innere_map->first << endl; cout << it_innere_map->second<< endl; } cout << endl << endl; }Du hattest einen kleinen Denkfehler.
it_ausgabe->secondist vom TypMap_1*, nichtMap_1::iterator. Deshalb geht das nicht.
So sollte es gehen!