Wie das erste Element aus QMap löschen (tricky!)
Verfasst: 20. Oktober 2007 10:11
Ich muss das erste Element aus einer QMap löschen...
bringt leider nichts, da die Suche nach dem Element (der Iterator aus begin()) über den Ist-Kleiner-Operator läuft.
Nur: den Op hab ich überladen und aufgrund von numerischen Ungenauigkeiten findet er in seltenen Fällen nicht das zu löschende Element. Also brauche ich eine Möglichkeit, direkt das erste Element zu löschen, wie gesagt: ohne Vergleichs-Operatoren (daher scheiden find o.ä. erstmal aus). Ein simples remove(0) gibts nämlich leider auch nicht.
Konvertierung in eine QList und anschliessendes Neubauen der QMap halte ich für zeit-kritisch.
Ohnehin verstehe ich nicht, wieso ein const-Iterator auf Begin() trotzdem erst gesucht werden muss
Ideen?
Code: Alles auswählen
qmap.remove(qmap.begin());
Nur: den Op hab ich überladen und aufgrund von numerischen Ungenauigkeiten findet er in seltenen Fällen nicht das zu löschende Element. Also brauche ich eine Möglichkeit, direkt das erste Element zu löschen, wie gesagt: ohne Vergleichs-Operatoren (daher scheiden find o.ä. erstmal aus). Ein simples remove(0) gibts nämlich leider auch nicht.
Konvertierung in eine QList und anschliessendes Neubauen der QMap halte ich für zeit-kritisch.
Ohnehin verstehe ich nicht, wieso ein const-Iterator auf Begin() trotzdem erst gesucht werden muss
Ideen?