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>
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>
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>
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>
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!