Bagaimana untuk mengosongkan dan menggunakan semula aliran ostring?

Susan Sarandon
Lepaskan: 2024-10-24 01:53:29
asal
435 orang telah melayarinya

How to Clear and Reuse an ostringstream?

Menggunakan semula aliran ostring

Dalam usaha mengoptimumkan peruntukan sumber, seseorang mungkin menghadapi keperluan untuk menetapkan semula aliran ostring kepada keadaan asalnya untuk mengelakkan berlebihan peruntukan. Artikel ini menangani isu ini dengan meneroka pelbagai kaedah untuk mengosongkan dan menggunakan semula aliran ostring.

Menetapkan Semula Objek

Untuk mengembalikan aliran ostring kepada keadaan asalnya, urutan jelas dan str boleh digunakan:

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

// Empty the buffer
s.str("");</code>
Salin selepas log masuk

Pendekatan ini secara berkesan mengosongkan penimbal dan menetapkan semula penunjuk strim. Sebagai alternatif, pembersihan manual boleh dilakukan diikuti dengan mencari ke permulaan:

<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>
Salin selepas log masuk

Kaedah ini menghalang pengagihan semula yang tidak perlu dengan menulis ganti kandungan penimbal sedia ada. Contohnya:

<code class="cpp">std::ostringstream s;
s << "hello";
s.seekp(0);
s << "b";
assert(s.str() == "bello");</code>
Salin selepas log masuk

Untuk menggunakan rentetan bagi fungsi gaya C, std::ends boleh digunakan untuk menambahkan aksara null penamat:

<code class="cpp">// Append a terminating null
s << std::ends;
assert(s.str().size() == 5 && std::strlen(s.str().data()) == 1);</code>
Salin selepas log masuk

Walaupun std::ends ialah tinggalan daripada std::strstream yang telah ditamatkan, ia kekal berguna dalam situasi di mana ia perlu untuk bekerja dengan tatasusunan aksara gaya C tanpa penamatan nol yang jelas.

Atas ialah kandungan terperinci Bagaimana untuk mengosongkan dan menggunakan semula aliran ostring?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!