unknown: Wann ist ein const_cast angebracht?

Beitrag lesen

Nein, eigentlich nicht. Ich speichere ja statt des Schlüssels einen Zeiger zu dem Schlüssel,

Ja, soweit verstanden!

der zu dem Element innerhalb meiner Liste zeigt.

der Zeiger, zeigt auf einen std-String, der ist doch nicht in deiner Liste?

Beim Einfügen habe ich dann nur den Schlüssel in die Liste eingefügt, mir den Zeiger darauf geholt und den in der multimap gespeichert.

Ok, das ist wieder klar. Aber,

  1. Du fügst mit Key "xyz" etwas ein. Das ist die Variable 1 mit Adresse 1!
  2. Adresse 1 speicherst du in der Liste und nimmst diese als Key?
  3. Du suchst mit Key "xyz" etwas mit deinem Wrapper. Das ist die 2. Variable mit Adresse 2

Welchen Zeiger speicherst du denn in der Liste bzw. Map? Den auf Variable 1 oder machst du noch eine Kopie und speicherst diese Adresse? Sonst könnte die Variable 1 im u.U. gelöscht/verändert werden!
Wie kommst du von Variable 2 auf Adresse 1? Du müsstest ja die Liste durchgehen und den Inhalt der gespeicherten Keys mit Variable 2 vergleichen um den Key der multimap zu finden.

Wenigstens sind wir uns aber einig, dass meine Wrapperklasse wohl eine Schnapsidee war…

Nicht mehr so ganz, das mit dem Speicherplatz sparen macht durchaus Sinn!
Allerdings dürfte das Suchen der Keys reht lange dauern, so wie du es gelöst hast!