对于以下类型的数据表示,什么是良好的数据结构?

时间:2014-06-30 01:08:13

标签: c++ list vector stl

我正在尝试为网格存储逐帧体素信息。那是在每一帧中,我试图存储每个体素将包含的基元。一切都只是整数键,所以基本上就是这样一个表:

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我可以使用?

2 个答案:

答案 0 :(得分:1)

  1. 框架列表。

    std::vector<Frame> frames;
    
  2. 帧=体素列表。

    typedef std::vector<Voxel> Frame;
    
  3. Voxel = int s的列表。

    typedef std::vector<int> Voxel;
    
  4. 撤销声明的使用顺序。

    typedef std::vector<int> Voxel;
    typedef std::vector<Voxel> Frame;
    std::vector<Frame> frames;
    

答案 1 :(得分:1)

&#34;最好的存储方式是什么?&#34;。

您的问题没有一个正确答案。鉴于您对存储数据的描述,您已经选择了一个非常合理的数据结构。

如果您有一个特定的优化目标(例如最小化执行时间,最小化内存使用),那么不同的数据结构可能更有效地实现您的目标。