QHash löschen / Speicher freigeben
Verfasst: 22. Januar 2011 11:21
Hallo,
ich habe einen QHash der einen QString als key und einen Pointer einer Klasse als value aufnimmt. Während der Laufzeit erzeuge ich mit new Objekte und speichere dann die Pointer im Hash. Wenn ich mit dem Hash fertig bin bzw mit den Daten gearbeitet habe möchte ich diese löschen bzw den Speicher wieder freigeben. Das mache ich folgendermaßen :
Wenn größere Datenmengen verarbeitet werden, also der Hash mehrere Tausend Objekte speichert dauert das löschen des Hashs sehr sehr lange. Nun stelle ich mir die Frage ob es nicht vllt eine schnellere, performantere Methode gibt den Hash und dessen Inhalt zu löschen. Über eure Hilfe würde ich mich freuen.
MfG
marvel
ich habe einen QHash der einen QString als key und einen Pointer einer Klasse als value aufnimmt. Während der Laufzeit erzeuge ich mit new Objekte und speichere dann die Pointer im Hash. Wenn ich mit dem Hash fertig bin bzw mit den Daten gearbeitet habe möchte ich diese löschen bzw den Speicher wieder freigeben. Das mache ich folgendermaßen :
Code: Alles auswählen
if(!relationContainer.isEmpty())
{
QHashIterator<QString, OSM_Relation*> i(relationContainer);
while (i.hasNext())
{
i.next();
delete i.value();
}
relationContainer.clear();
}
if(!wayContainer.isEmpty())
{
QHashIterator<QString, OSM_Way*> x(wayContainer);
while (x.hasNext())
{
x.next();
delete x.value();
}
wayContainer.clear();
}
if(!nodeContainer.isEmpty())
{
QHashIterator<QString, OSM_Node*> k(nodeContainer);
while (k.hasNext())
{
k.next();
delete k.value();
}
nodeContainer.clear();
}MfG
marvel