是否有一些“标准”容器(STL,boost)可以将多个内存块呈现为单个连续的内存块?我需要一些数据来工作下列条件:容器将多个内存块呈现为单个连续的内存块
- 数据的总大小是事先不知道的(网络响应)
- 内存在大块来分配(与一些外部配置的功能,这是我无法控制的)
- 内存释放不是由我控制的,所以重新分配是比较昂贵的
因此,让所有的数据后,我有内存块的列表。我需要将一些STL算法(搜索,复制等)作为一个整体应用于数据。有一个解决方案来编写容器来保存有关这些块+前向迭代器的信息,该迭代器可以从一个块跳转到另一个块。
但问题看起来相当普遍,所以我希望有一些我很想知道的答案。提前致谢。
我完全同意我需要一个迭代器,我已经提到它作为一个可能的解决方案。但是使用没有容器的迭代器对我来说看起来很奇怪。因为我应该以某种方式获得我的'begin()'和'end()',所以将这些东西封装在容器中看起来很自然。也许词_container_在这里被我滥用。我不是在谈论STL容器的概念,而是关于一些“包容器”,用于封装它们的单独的块。我只是希望自己不要实施这些东西。无论如何,谢谢你的回答。 – 2012-03-20 04:07:54
“_Container_”在C++中有很好的定义(这是标准的第23章)。 – MSalters 2012-03-20 08:24:29