c++ - 更好地解释数组

标签 c++ arrays for-loop nested-loops

您好,我自学 C++ 有一段时间了,一直在数组部分。我还不太了解数组(和嵌套的 for 循环),非常感谢您的帮助

1) 如何

const int ROWS = 5;
const int COLUMNS = 3;
for (int i = 0; i < ROWS; ++i)

{
    for (int j = 0; j < COLUMNS; ++j)
            cout << i << "," << j << " ";
    cout << endl;
}

显示

0,0 0,1 0,2
1,0 1,1 1,2
2,0 2,1 2,2
3,0 3,1 3,2
4,0 4,1 4,2

看了一眼代码,我觉得应该更像

0,0 0,1 0,2 1,0 1,1 1,2 2,0 2,1 2,2 3,0 3,1 3,2 4,0 4,1 4,2

为什么在 3 组 2 之后自动创建一个新行?

2) 我不知道什么是迭代器。我已经在 vector 文件名中使用了它们,但我仍然不知道它们是什么以及它们如何更改数据

3) 这些'[]'在这段代码中做了什么?

const int ROWS = 3;
    const int COLUMNS = 3;
    char board[ROWS][COLUMNS] = { {'O', 'X', 'O'},
                                   {' ', 'X', 'X'},
                                     {'X', 'O', 'O'} };
    cout << "Here's the Tic-Tac-Toe board:\n";
    for (int i = 0; i < ROWS; ++i)
    {
        for (int j = 0; j < COLUMNS; ++j)
            cout << board[i][j];
        cout << endl;
    }

更具体地说,是什么

[ROWS][COLUMNS] 

以及为什么它们属于那些盒子。

cout << board[i][j]

输出井字棋盘。

我意识到这是一个但有很多要求,但我不知道我现在在书中编程什么,非常感谢您的帮助

最佳答案

1) "cout << endl;"行正在创建换行符。前一行打印两个逗号分隔的值,i(第一个 for 循环的迭代)和 j,第二个 for 循环的迭代。第二个循环递增 j 直到 j = COLUMNS (3)。所以你得到了这两个值的 3 个循环,后跟一个新行。然后由于第一个循环而重复此操作,递增 i 直到它等于 ROWS (5)。这就是为什么你得到 5 行。

2)本例中的迭代器是 i 和 j。它们是测量循环中位置的 int 变量,因为每次循环运行时它们都会递增。

3) []声明一个数组。例如

int myArray[3] 

创建一个包含三个整数空间的数组。

char board[ROWS][COLUMNS]

正在创建一个多维 数组。因此,您有一个在一个维度上长度为 ROWS 的数组,在另一个维度上有一个长度为 COLUMNS 的数组。

然后,在你的循环中

cout << board[i][j]

打印出数组第一维位置i和第二维位置j的值。

关于c++ - 更好地解释数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16764764/

相关文章:

PHP 嵌套 for 循环

java - 使用Java循环制作图案

c++ - Windows:C++:从文件重定向到串口(输入)

c++ - 在 'parallel'中运行语句

c++ - 如何将 system() 函数与用户输入一起使用 C++

javascript - 循环 API 的好方法是什么?

Java 将 Asn.1 字节数组转换为浏览器方便的字符串

python - 迭代不同长度的列表并设置默认值的好方法

c++ - Eclipse C++ - 输出到窗口 DOS

python - 沿轴组合数组