[std::map] Iteration über Map in einer Map

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.
Antworten
RazorX
Establishment
Beiträge: 156
Registriert: 23.12.2010, 14:13
Kontaktdaten:

[std::map] Iteration über Map in einer Map

Beitrag von RazorX »

Servus,

habe gerade ein sehr seltsames Problem. Ich gehe eine Map in einer Map durch und sobald ich auf das erste Element der Map zugreife bekomme ich als Iterator nur Quatsch zurück.

Code: Alles auswählen

TexturePool::~TexturePool()
{
	std::map<std::wstring, std::map<std::wstring, Texture*>*>::iterator itBase;
	std::map<std::wstring, Texture*>::iterator itSub;
	for(itBase = mTextures.begin() ; itBase != mTextures.end() ; ++itBase)
	{
		std::map<std::wstring, Texture*>* subMap = itBase->second;
		for(itSub = subMap->begin() ; itSub != subMap->end(); ++itSub);
		{
/* Hier ist der Iterator itSub kaputt und zeigt auf falsche Adressen */
			delete itSub->second;
			--mCount;
		}
		delete itBase->second;
	}
}
Hat jemand so ein Problem schon gehabt? Schonmal danke im vorraus!

LG
Helmut
Establishment
Beiträge: 237
Registriert: 11.07.2002, 15:49
Wohnort: Bonn
Kontaktdaten:

Re: [std::map] Iteration über Map in einer Map

Beitrag von Helmut »

Greifst du im DTor von Texture auf die Map zu?
RazorX
Establishment
Beiträge: 156
Registriert: 23.12.2010, 14:13
Kontaktdaten:

Re: [std::map] Iteration über Map in einer Map

Beitrag von RazorX »

Nein, da komme ich ja auch noch nichtmals hin. Bevor ich "delete itSub->second;" aufrufe ist der Iterator schon kaputt.
Benutzeravatar
Schrompf
Moderator
Beiträge: 4856
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: [std::map] Iteration über Map in einer Map

Beitrag von Schrompf »

Oder stehen vielleicht von Haus aus bereits ruinierte Zeiger in den maps? Hast Du den Inhalt der Maps vorher schonmal für was benutzt?
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
RazorX
Establishment
Beiträge: 156
Registriert: 23.12.2010, 14:13
Kontaktdaten:

Re: [std::map] Iteration über Map in einer Map

Beitrag von RazorX »

Schrompf hat geschrieben:Oder stehen vielleicht von Haus aus bereits ruinierte Zeiger in den maps? Hast Du den Inhalt der Maps vorher schonmal für was benutzt?
Ne der Inhalt ist korrekt, die Daten sind verwertbar und wenn ich über den itBase im VisualStudio mal die Pointer verfolge komme ich ja auch korrekt zu den Einträgen.
joggel

Re: [std::map] Iteration über Map in einer Map

Beitrag von joggel »

Ist der schon beim ersten Durchgang ungültig?
Oh, sorry. Habe gerade deinen Beitrag gelesen, wo du ja sagst, das du nicht mal zu "itBase->second;" kommst.
Benutzeravatar
kimmi
Moderator
Beiträge: 1405
Registriert: 26.02.2009, 09:42
Echter Name: Kim Kulling
Wohnort: Luebeck
Kontaktdaten:

Re: [std::map] Iteration über Map in einer Map

Beitrag von kimmi »

Ist ein Schreibfehler:

Code: Alles auswählen

for(itSub = subMap->begin() ; itSub != subMap->end(); ++itSub); <- ein Semikolon zuviel
Gruß Kimmi
RazorX
Establishment
Beiträge: 156
Registriert: 23.12.2010, 14:13
Kontaktdaten:

Re: [std::map] Iteration über Map in einer Map

Beitrag von RazorX »

Irgendwie schon fast peinlich :D Danke
Benutzeravatar
kimmi
Moderator
Beiträge: 1405
Registriert: 26.02.2009, 09:42
Echter Name: Kim Kulling
Wohnort: Luebeck
Kontaktdaten:

Re: [std::map] Iteration über Map in einer Map

Beitrag von kimmi »

Wem das noch nie passiert ist, der werfe den ersten Stein ;).

Gruß Kimmi
Antworten