C++中的矩阵索引表示法

vol*_*ssa 1 c++ indexing matrix multidimensional-array

我可以使用单个索引索引多维数组吗?

例如:

在内存中,多维数组被索引为单个数组(例如矩阵2x2,矩阵[1] [1]是数组的第四个元素,"矩阵[3]")是否有系统自动使用此表示法?我想写矩阵[3]而不是矩阵[1] [1]:可能吗?

Jac*_*ack 6

根据您希望如何访问数据,您可以轻松使用单个索引或使用两种方法.根据数据的访问或使用方式,接受两个索引的方法可以是行主要列主要.当然要做到这一点,你需要将矩阵存储在一维数组中.例如:

class Matrix {
  int data[W*H];

  int get(int i) { return data[i]; }
  int get(int x, int y) { return data[y*W+x]; }
}
Run Code Online (Sandbox Code Playgroud)

  • 同样的原则适用于任何任意维度.唯一改变的是`int data [W*H*D]`和`int get(int x,int y,int z){return data [W*H*z + W*y + x]}`. (2认同)