Wir haben eine Legacy-Methode, die vector
von Zeichenzeigern, d. h. vector<char *>
, zurückgibt.
Jetzt muss ich nur Zeichenfolgen verarbeiten ( std::string
). Wie kann ich das tun?
Diese Frage klingt vielleicht einfach, aber ich stoße auf einige Websites, die zeigen, dass diese Überlegungen zu Speicherlecks führen können.
Nun möchte ich entweder eine vector<string>
oder gar eine Zeichenfolge ohne Speicherlecks bekommen. Wie kann ich das tun?
Nun, abhängig von den Leistungsanforderungen könnten Sie einfach ein std::string
nach Bedarf erstellen. So:
Die Konvertierung ist ziemlich einfach:
%Vor% Sobald Sie das getan haben, müssen Sie noch sicherstellen, dass die Objekte, auf die die Zeiger in ugly_vector
zeigen, korrekt zerstört sind. Wie Sie das tun, hängt von dem alten Code ab, den Sie verwenden.