首頁 > 後端開發 > C++ > 如何清除和重複使用 ostringstream?

如何清除和重複使用 ostringstream?

Susan Sarandon
發布: 2024-10-24 01:53:29
原創
526 人瀏覽過

How to Clear and Reuse an ostringstream?

重複使用 ostringstream

在最佳化資源分配時,可能需要將 ostringstream 重設為其初始狀態以避免過度使用分配。本文透過探索清除和重複使用 ostringstream 的各種方法來解決此問題。

重置物件

要將ostringstream 恢復到原始狀態,需要執行一系列清除操作可以使用str :

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

// Empty the buffer
s.str("");</code>
登入後複製

這種方法有效清除緩衝區並重置流指標。或者,可以執行手動清除,然後查找開頭:

<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>
登入後複製

此方法透過覆寫現有緩衝區內容來防止不必要的重新分配。例如:

<code class="cpp">std::ostringstream s;
s << "hello";
s.seekp(0);
s << "b";
assert(s.str() == "bello");</code>
登入後複製

要將字串用於C 樣式函數,可以使用std::ends 附加終止空字元:

<code class="cpp">// Append a terminating null
s << std::ends;
assert(s.str().size() == 5 && std::strlen(s.str().data()) == 1);</code>
登入後複製

儘管std::ends是已棄用的std::strstream 的殘餘,它在需要使用C 風格字元陣列而無需顯式null 終止的情況下仍然有用。

以上是如何清除和重複使用 ostringstream?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板