Frage zu string::reserve()



  • Guten Morgen,
    ich habe soeben die Funktion string::reserve() kennengelertn. Soweit ich sie verstaden habe, kann man mit ihr die Größe eines Strings schon von vornherein festlegen (natürlich nur wenn man die Länge des Strings kennt). Ist das richtig?

    Für was wäre dann diese Funktion gut? Kann ich die Laufzeit irgendwie verbessern?

    Vielen Dank
    lg, freakC++



  • Weil intern ein normales char_t-array die Daten hält, und ein Resizen mit einigem an Kopierarbeit verbunden ist. Wenn du also vor einem größeren Algorithmus stehst, kannst du dessen Laufzeit verbessern, wenn du die Strings vorher passend resized. Natürlich nicht, wenn es nur temporäre Strings sind, da bringt ein eigenes resizen vor der Zuweisung einer Zeichenkette nix, sondern eher wenn du strings hast die über den kompletten Algo immer wieder neue Zeichenketten halten müssen, oder wenn was angehangen wird, usw. Nachteil ist natürlich der höhere Speicherbedarf, auch wenn kaum was drin steht.



  • achso...ok! Ist also für mich erstmal uninteressant


Anmelden zum Antworten