2013-05-26 45 views
1

嗨我一直在教自己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)我不知道迭代器是什么。我已经在矢量文件名中使用了它们,但我仍然不知道它们是什么以及它们如何更改数据。

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] 

输出井字棋板。

我意识到这是一个很大,但要问,但我不知道我在书中编程现在,真的希望帮助

+0

在你自学C++之前,你在编程什么语言?循环在大多数编程语言中几乎相同,并且数组也没有太大差别(尽管C和C++数组有一些与可能令人困惑的指针有关的其他方面)。 – Barmar

+0

@Barmar C++是我的第一语言。 –

+0

对不起。我希望人们能区分新编程语言和新编程语言。当你说“我在教自己C++”时,我假设你的意思是说你知道如何用其他语言编程并且只是学习C++。 – Barmar

回答

0

1)行“COUT < < ENDL;”正在创建换行符。之前的行打印两个逗号分隔值,i(它是第一个for循环的迭代)和j,第二个循环的迭代。第二个循环正在递增j,直到j = COLUMNS(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的第一尺寸范围内。

0

是的,当你提出太多问题是因为你真的需要更多的基础。 我有一个启动C++的简单提示。观看最好的编程老师这个播放列表中的网站:

http://www.youtube.com/course?list=ECAE85DE8440AA6B83

读书是重要的,但你可以得到很多的方便信息只是看他的录像,并复制他做什么。他还解释了他所做的一切,所以你不会感到困惑。