抽象術語管道是具有破壞性讀取的流/ FIFO類型容器。它有一個read()
方法可以一次複製數據塊,並且對於單個字節的功能類似get
和put
。當read
或get
返回時,從管道內複製的數據將從管道的內部緩衝區中移除 - 與文件或任何其他容器類型不同。有沒有像管道一樣工作的C++ STL類?
大多數(所有?)STL容器都不在一個buffer命令提供了類似的read()
。是否有一個帶有pop_many()
成員的fifo容器類型?
stringstream
大約是我能想到的,因爲它保持着一個內部讀指針和未來的讀取將阻塞,直到流再次填補了最近的事情。從API的角度來看,容器是空的,但所消費的數據必須手動垃圾收集。
是否有在C++中,這是否等同容器或流類,或者是它滾你自己的事情(像stringstream的例子)?
也許是一個隊列? – Gir 2012-08-15 12:37:50
我可以在queue.pop()中放一個循環,但效率不高。我希望能夠刪除大塊數據,並且在刪除它們之後,隊列/ fifo會自動調整大小。 – 2012-08-15 12:40:20
你需要什麼? – 2012-08-15 12:41:11