在1维和2维阵列之间进行选择

时间:2014-02-13 06:55:03

标签: c++ c arrays data-structures

我正在实现Chessboard类来代表棋盘。我可以在棋盘上实现转换(反射和旋转)。

可能的转换包括:

的组合
 1. Vertical Reflection
 2. Horizontal Reflection
 3. Diagonal Reflection

因此,我们对棋盘进行了 8 可能的转换。

棋盘上有 64 方块,编号为[0..63]。

因此,表示转换后的总结果值为8 * 64(转换数量* Chessboard_Size)。

使用数组表示 transformed_board 有两种基本方法:

One-Dimensional Array with transformed_board[8*64]
Two-Dimensional Array with transformed_board[8][64]

问题:

Which approach is better?
What are the pros and cons of each approach?
How will effect the performance with respect to time factor?

1 个答案:

答案 0 :(得分:1)

两者的内存布局相同,因此实际上并没有任何“真正的”差异。如果您是否希望编译器为您进行偏移计算,那么只需要更好地使用您喜欢的语法。