C++ std::string Anhängen vs push_back()

Dies ist wirklich eine Frage nur für mein eigenes Interesse, ich habe nicht in der Lage zu bestimmen, durch die Dokumentation.

Sehe ich auf http://www.cplusplus.com/reference/string/string/ anfügen, hat die Komplexität:

"Ein unbekannter, aber in der Regel bis zu linearen in das neue string-Länge."

während push_back() Komplexität:

"Unspezifiziert; in der Regel amortisiert konstant, aber linear in den neuen string-Länge."

Als Spielzeug angenommen, ich wollte die Zeichen anfügen "foo" in einen string. Würde

myString.push_back('f');
myString.push_back('o');
myString.push_back('o');

und

myString.append("foo");

Menge zu genau der gleichen Sache? Oder gibt es da einen Unterschied? Sie könnten herausfinden, dass append wäre effizienter, weil der compiler wissen, wie viel Speicher erforderlich ist, um verlängern die Zeichenfolge die angegebene Anzahl von Zeichen, während push_back können, müssen sichere Speicher pro Aufruf?

InformationsquelleAutor der Frage Memento Mori | 2013-02-26

Schreibe einen Kommentar