【发布时间】:2012-03-19 08:10:22
【问题描述】:
是否有一些“标准”容器(STL、boost)可以将多个内存块呈现为单个连续的块?我需要处理一些具有以下条件的数据:
- 事先不知道数据的总大小(网络响应)
- 内存是按块分配的(带有一些我无法控制的外部分配功能)
- 内存释放不受我控制,因此重新分配相对昂贵
所以,在获取所有数据后,我有一个内存块列表。而且我需要将一些 STL 算法(搜索、复制等)应用于整个数据。有一种解决方案可以编写容器来保存有关这些块的信息 + 转发迭代器,它能够从一个块“跳转”到另一个块。
但问题似乎相当普遍,所以我希望有一些我缺少的众所周知的答案。提前致谢。
【问题讨论】:
标签: c++ memory-management containers