是否有一些「標準」容器(STL,boost)可以將多個內存塊呈現爲單個連續的內存塊?我需要一些數據來工作下列條件:容器將多個內存塊呈現爲單個連續的內存塊
- 數據的總大小是事先不知道的(網絡響應)
- 內存在大塊來分配(與一些外部配置的功能,這是我無法控制的)
- 內存釋放不是由我控制的,所以重新分配是比較昂貴的
因此,讓所有的數據後,我有內存塊的列表。我需要將一些STL算法(搜索,複製等)作爲一個整體應用於數據。有一個解決方案來編寫容器來保存有關這些塊+前向迭代器的信息,該迭代器可以從一個塊跳轉到另一個塊。
但問題看起來相當普遍,所以我希望有一些我很想知道的答案。提前致謝。
我完全同意我需要一個迭代器,我已經提到它作爲一個可能的解決方案。但是使用沒有容器的迭代器對我來說看起來很奇怪。因爲我應該以某種方式獲得我的'begin()'和'end()',所以將這些東西封裝在容器中看起來很自然。也許詞_container_在這裏被我濫用。我不是在談論STL容器的概念,而是關於一些「包容器」,用於封裝它們的單獨的塊。我只是希望自己不要實施這些東西。無論如何,謝謝你的回答。 – 2012-03-20 04:07:54
「_Container_」在C++中有很好的定義(這是標準的第23章)。 – MSalters 2012-03-20 08:24:29