Heim > Backend-Entwicklung > C++ > Wie lösche ich einen Ostringstream und verwende ihn wieder?

Wie lösche ich einen Ostringstream und verwende ihn wieder?

Susan Sarandon
Freigeben: 2024-10-24 01:53:29
Original
505 Leute haben es durchsucht

How to Clear and Reuse an ostringstream?

Wiederverwendung eines Ostringstreams

Beim Bemühen, die Ressourcenzuteilung zu optimieren, kann es erforderlich sein, einen Ostringstream auf seinen ursprünglichen Zustand zurückzusetzen, um eine Überlastung zu vermeiden Zuteilungen. In diesem Artikel wird dieses Problem behandelt, indem verschiedene Methoden zum Löschen und Wiederverwenden eines Ostringstreams untersucht werden.

Zurücksetzen des Objekts

Um den Ostringstream in seinen ursprünglichen Zustand zurückzusetzen, ist eine Löschsequenz erforderlich und str können verwendet werden:

<code class="cpp">// Clear any flags (e.g., eof)
s.clear();

// Empty the buffer
s.str("");</code>
Nach dem Login kopieren

Dieser Ansatz löscht effektiv den Puffer und setzt die Stream-Zeiger zurück. Alternativ kann ein manuelles Löschen durchgeführt und anschließend zum Anfang gesucht werden:

<code class="cpp">// Clear any flags
s.clear();

// Reset put pointer (for output streams)
s.seekp(0);

// Reset get pointer (for input streams)
s.seekg(0);</code>
Nach dem Login kopieren

Diese Methode verhindert unnötige Neuzuweisungen, indem der vorhandene Pufferinhalt überschrieben wird. Zum Beispiel:

<code class="cpp">std::ostringstream s;
s << "hello";
s.seekp(0);
s << "b";
assert(s.str() == "bello");</code>
Nach dem Login kopieren

Um die Zeichenfolge für Funktionen im C-Stil zu verwenden, kann std::ends verwendet werden, um ein abschließendes Nullzeichen anzuhängen:

<code class="cpp">// Append a terminating null
s << std::ends;
assert(s.str().size() == 5 && std::strlen(s.str().data()) == 1);</code>
Nach dem Login kopieren

Obwohl std::ends ist ein Überbleibsel des veralteten std::strstream und bleibt in Situationen nützlich, in denen es notwendig ist, mit Zeichenarrays im C-Stil ohne explizite Nullterminierung zu arbeiten.

Das obige ist der detaillierte Inhalt vonWie lösche ich einen Ostringstream und verwende ihn wieder?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage