如果你能保证vector首次就满足容量,不发生re alloate。
我觉得可以这样实现。
自定义allocator。加两个全局变量,一个记录地址,一个记录偏移。
alloctor内部记录一下分配的地址,并提供一个访问改地址是接口。
分片时,通过接口,全局变量记录原始vector的分配的地址,以及需要的偏移,alloctor判断改全局变量不为空,则直接返回偏移地址。切记,这时construct函数不能初始化内存,alloctor可以在allocate时记录一个标识。
析构和deallocate同理。
然后全局变量清空。
【 在 granis 的大作中提到: 】
: 谢谢,感觉不太能满足需求。
: 感觉自定义Allocator是否能够满足?其实就相当于一个Vecotor的元素引用一个已经存在的大的连续内存中的某一个连续的块。
:
: ...................
--来自微微水木3.5.12
--
修改:foliver FROM 140.206.194.*
FROM 140.206.194.*