抽象的に言えば、パイプは破壊的な読み取りを行うストリーム/FIFO スタイルのコンテナーです。read()
データのチャンクを一度にコピーするメソッドがあり、1 バイトに対してget
やのように機能します。put
ただし、read
orget
が戻ると、パイプからコピーされたデータはパイプの内部バッファーから削除されます - ファイルや他のコンテナー タイプとは異なります。
read()
STL コンテナーのほとんど (すべて?) は、バッファー コマンドと同様の機能を提供していません。pop_many()
メンバーを持つ fifo コンテナー タイプはありますか?
stringstream
内部読み取りポインターを維持し、ストリームが再びいっぱいになるまで将来の読み取りがブロックされるため、私が考えることができる最も近いものです。コンテナーは API の観点からは空ですが、消費されたデータは手動でガベージ コレクションする必要があります。
これを行う C++ の同等のコンテナーまたはストリーム クラスはありますか、それとも独自のロール (stringstream の例のように) の問題ですか?