恒定尺寸的 3D 表

时间:2021-03-24 21:28:39

标签: c++ 3d

我被要求创建一个包含 3D 表格的类。但是,尺寸不是标准的,由用户给出。我显然可以使用向量,这样就可以了。但是,我可以在初始化后制作恒定大小的向量,还是有另一种方法可以在不使用向量的情况下创建这样的对象?提前致谢

2 个答案:

答案 0 :(得分:2)

<块引用>

但是,我可以在初始化之后制作恒定大小的向量

如果不调整向量的大小,则其大小保持不变。您可以使向量成为类的私有成员,以使用类不变量强制执行此类限制。

<块引用>

或者有没有其他方法可以在不使用向量的情况下创建这样的对象?

您可以在不使用向量的情况下分配动态数组。但不会那么方便。

答案 1 :(得分:0)

您可以使用 new,但这意味着您需要做大量工作。这是一个最小的例子:

class threeDTable {
  public :
    threeDTable(int n){data = new yourType[n*n*n]; size=n;}
    ~threeDTable(){delete []data;}
    void set(int x, int y, int z, yourType value){data[size*size*x + size*y + z]=value;}
    yourType get(int x, int y, int z)const {return data[size*size*x + size*y + z];}
  private :
    yourType *data;
    int size;
  };