理解 C++ 中的枚举数组

问题描述 投票:0回答:1

我正在阅读一本关于自学 C++ 的书,其中有一个关于使用枚举和数组创建棋盘布局的问题。 查看他们的解决方案,他们调用枚举来声明棋盘上任何给定方块的潜在状态。但是我不完全明白那之后发生了什么。他们的代码如下所示:

int main()
{
    enum Square
    {
        Empty = 0,
        Pawn,
        Rook,
        Knight,
        Bishop,
        King,
        Queen
    };

    Square chessBoard[8][8];

    chessBoard[0][0] = chessBoard[0][7] = Rook;
    //Follow this pattern to initialise the rest of the pieces

    return 0;
}

我不明白“Square chessBoard”在这种情况下实际上在做什么。我是这方面的初学者,所以非常感谢任何帮助。

c++ arrays enums chess
1个回答
0
投票

<type> <variable>[dim1][dim2]
创建一个
<type>
类型的二维数组,具有
dim1
行和
dim2
列。例如,
int board[10][14]
创建具有 10 行和 14 列的网格,每列包含一个整数,并将该网格命名为
board
。然后,您可以执行
board[1][3] = 17
之类的操作,将第 2 行(0 索引)、第 4 列的值设置为 17。

因此,

Square chessBoard[8][8]
设置了一个名为
chessBoard
的变量,它是一个 8 x 8 的
Square
实例网格。而
Square
enum
的类型。所以
Square
可以有值
Pawn
Rook
,就像
int
可以有 10 或 88 这样的值。

所以,假设您想在该板的左上角放置一个车。然后

chessBoard[0][0] = Square.Rook
就可以了。把它放在右上角你会做
chessBoard[0][7] = Square.Rook
.

注意:决定 0 是“顶部”而不是 7 是“顶部”是任意的,就像决定先行然后列或 0 是“左”而 7 是“右”一样。

© www.soinside.com 2019 - 2024. All rights reserved.