Wie mit temporärer Puffer in C ++ zu arbeiten

Temporäre Puffer sind für alle Arten von Aufgaben nützlich. Normalerweise verwenden Sie sie, wenn Sie die ursprünglichen Daten erhalten wollen, aber Sie müssen die Daten in irgendeiner Weise zu manipulieren. Beispielsweise ist ein vollkommenes Verwendung eines temporären Puffer eine sortierte Version der Daten. Das TemporaryBuffer Beispiel zeigt, wie eine temporäre Puffer verwenden, um einige Strings zu sortieren.

#einschließen #einschließen #einschließen #einschließen using namespace std-int main () {Vektor Words-Words.push_back("Blue")-Words.push_back("Green")-Words.push_back("Teal")-Words.push_back("Brick")-Words.push_back("Purple")-Words.push_back("Brown")-Words.push_back("LightGray")-int Count = Words.size () - cout lt; lt; "Worte enthält:" lt; lt; Graf lt; lt; "Elemente". lt; lt; Endl - // Erstellen Sie die Puffer und kopieren Sie die Daten auf it.pair Mem = get_temporary_buffer(Count) -uninitialized_copy (Words.begin (), Words.end (), Mem.first) - // eine Art durchführen und zeigen die results.sort (Mem.first, Mem.first + Mem.second) -für ( int i = 0- i lt; Mem.second- i ++) cout lt; lt; Mem.first [i] lt; lt; Endl-return 0-}

Das Beispiel beginnt mit der inzwischen bekannten Liste der Farbnamen. Er zählt dann die Anzahl der Einträge in Vektor und zeigt die Zählung Bildschirm.

An diesem Punkt erzeugt der Code den temporären Puffer get_temporary_buffer. Der Ausgang ist Paar, mit dem ersten Wert einen Zeiger auf den String-Werten und den zweiten Wert enthält, die Anzahl der Datenelemente enthält. Mem nichts enthalten - Sie haben einfach Speicher zugeordnet.

Die nächste Aufgabe ist es, die Daten zu kopieren aus Vektor (Wörter) nach Paar (Mem) Verwendung uninitialized_copy. Nun das Mem enthält eine Kopie Ihrer Daten, können Sie es mit Hilfe der Sortierfunktion zu organisieren. Der letzte Schritt ist die angezeigt werden Mem Inhalt auf dem Bildschirm. Hier ist, was Sie sehen:

Wörter enthält: 7 elements.BlueBrickBrownGreenLightGrayPurpleTeal

Menü