我正在使用 boost lib 来保留共享内存。我已经能够为浮点、整数、字符串类型的向量保留,但不确定如何为结构类型分配?
我使用以下代码为 int 类型的向量保留内存(我只写了一些代码):
typedef allocator<int, managed_shared_memory::segment_manager> ShmemAllocator_int;
typedef vector<int, ShmemAllocator_int> vector_int;
.............
const ShmemAllocator_int alloc_inst_int (segment.get_segment_manager());
vector_int *IMG_ID_LIST = segment.construct<vector_int>("IMG_ID_LIST")(alloc_inst_int);
在为结构分配内存的情况下,如何使用上述代码?
我想为一个结构保留内存,在该结构中我可以将上述向量与类似的向量一起存储。例如,我的结构有点像下面:
struct img{
vector<int> Id;
vector<float> size;
vector <int> Name;
}
我怎样才能为这个结构保留内存?我的另一个困惑是在我为结构 img 分配内存之后,我是否也应该为结构元素的 Id、size 和 Name 分配内存?
我必须在内存中获取数千个img的信息,所以如果有其他有效的方法。请提及。