我正在尝试为网格存储逐帧体素信息。那是在每一帧中,我试图存储每个体素将包含的基元。一切都只是整数键,所以基本上就是这样一个表:
FRAME 1
Voxel 1 : { 3,4,5 }
Voxel 2 : { 7,8 }
Voxel 3 : NULL
..
..
Voxel 5000 : {1223,43,42}
FRAME 2
Voxel 1 : { 3,5 }
Voxel 2 : { 7,8,0 }
Voxel 3 : NULL
..
..
Voxel 5000 : {123,413,422}
...
最好的存储方式是什么?在这一点上,我正在考虑像
这样的东西std :: vector<的std ::矢量< std :: list> >
即外部矢量将包含逐帧数据。内部向量将包含每个体素列表数据。
这可以,还是有更好的模板DS我可以使用?
答案 0 :(得分:1)
框架列表。
std::vector<Frame> frames;
帧=体素列表。
typedef std::vector<Voxel> Frame;
Voxel = int
s的列表。
typedef std::vector<int> Voxel;
撤销声明的使用顺序。
typedef std::vector<int> Voxel;
typedef std::vector<Voxel> Frame;
std::vector<Frame> frames;
答案 1 :(得分:1)
&#34;最好的存储方式是什么?&#34;。
您的问题没有一个正确答案。鉴于您对存储数据的描述,您已经选择了一个非常合理的数据结构。
如果您有一个特定的优化目标(例如最小化执行时间,最小化内存使用),那么不同的数据结构可能更有效地实现您的目标。