您好,我自学 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/