ブースト 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 の情報を取得する必要があるので、他に有効な方法があれば教えてください。言及してください。