000
15.08.2005, 23:54 Uhr
~Nico26
Gast
|
Hi!
Ich hab ein Problem mit einer C++-map. Ich habe eine map<unsigned, myClass>, die als Schlüssel ein unsigned verwendet und als Wert eine von mir definierte Klasse.
Die unsigned-Werte, die ich als Schlüssel verwende, sind Datum-Werte, z.B. 20050814. Ich lese viele Werte in die map ein (ca. 1400) und das Problem ist, dass die map sich anscheinend irgendwann (ich glaub mal gelesen zu haben, wenn sie eine anfangs definierte Größe überschreitet) resizet wird und dadurch aber meine Datums-Werte durcheinanderkommen.
D.h. obwohl ich die Werte mit aufsteigendem Datum einfüge, z.B. vom 1.1.2001 (20010101) bis zum 14.8.2005 (20050814), liegen sie nach dem Füllen der map nicht mehr in dieser Reihenfolge vor, sondern etwa so 20020712 bis 20050814, dann 20010101 bis 20020711.
Mir sind 2 Dinge eingefallen, was ich tun könnte, ich weiß jedoch nicht wie es geht:
1. die Map nach dem Füllen mit Daten sortieren, sort(mapName.begin(), mapName.end()) bringt mir 9 Fehler (evtl. weil ich myClass in der map verwende??) 2. die Größe der map bereits vor dem Füllen festlegen, sodass kein Resize auftritt.
Wär super, wenn mir jemand sagen könnte, wie eines der beiden Dinge funktioniert.
Danke & Gruß, Nico. |