Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Menggunakan Semula ostringstreams?

Bagaimana untuk Menggunakan Semula ostringstreams?

Linda Hamilton
Lepaskan: 2024-10-24 04:34:02
asal
1011 orang telah melayarinya

How to Reuse ostringstreams?

Bagaimana untuk menggunakan semula aliran ostring?

Untuk mengelakkan aplikasi memperuntukkan memori dengan kerap, anda mungkin mahu mengosongkan dan menggunakan semula aliran ostring (dan penimbal asasnya). Untuk menetapkan semula objek kepada keadaan asalnya, ikuti langkah berikut:

Menggunakan clear dan str

Pada masa lalu, jujukan clear dan str digunakan untuk mencapai ini :

<code class="cpp">// 清除,因为 eof 或其他位可能仍然设置。
s.clear();
s.str("");</code>
Salin selepas log masuk

Ini berfungsi untuk kedua-dua aliran rentetan input dan output.

Kosongkan dan cari secara manual

Sebagai alternatif, anda boleh mengosongkan secara manual dan kemudian mulakan dengan carian urutan yang sesuai:

<code class="cpp">s.clear();
s.seekp(0); // 对于输出:将放置指针指向开头
s.seekg(0); // 对于输入:将获取指针指向开头</code>
Salin selepas log masuk

Ini akan menghalang str Lakukan beberapa pengagihan semula, sebaliknya tulis ganti apa sahaja yang ada dalam penimbal keluaran pada masa ini. Hasilnya adalah seperti berikut:

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

Untuk c-functions gunakan std::ends

Jika anda ingin menggunakan rentetan itu untuk c-functions, anda boleh gunakan std::ends ends, meletakkan nol penamatan, seperti ini:

<code class="cpp">std::ostringstream s;
s << "hello";
s.seekp(0);
s << "b" << std::ends;
assert(s.str().size() == 5 && std::strlen(s.str().data()) == 1);</code>
Salin selepas log masuk

std::ends ialah baki std::strstream yang ditamatkan, yang boleh menulis terus kepada perkara yang anda peruntukkan pada susunan char tindanan. Anda mesti memasukkan nol penamat secara manual. Walau bagaimanapun, std::ends tidak ditamatkan, saya fikir kerana ia masih berguna dalam situasi di atas.

Atas ialah kandungan terperinci Bagaimana untuk Menggunakan Semula ostringstreams?. 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