将boost共享内存分配给结构

时间:2013-10-28 11:41:59

标签: c++ boost shared-memory

我正在使用boost lib来保留共享内存。我已经能够保留float,int,string类型的向量但不确定如何为结构类型分配?

我使用以下代码为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的信息,以便有其他有效方法。请提一下。

0 个答案:

没有答案