15.1、嵌套循环和二维数组
下面讨论如何使用嵌套for循环来处理二维数组。到目前为止,我们一直学的是一维数组,因为每一个数组都可以看作是一行数据。二维数组更像是一个表格——既有数据行也有数据列。C++并没有提供二维数组类型,但是用户可以创建每个元素本身都是数组的数组。我们可以这样声明数组:
int maxtemps[4][5];
这声明意味着maxtemps是一个包含4个元素的数组,其中每个元素都是一个由5个整数组成的数组。表达式maxtemps[0]是maxtemps数组的第一个元素,因此maxtemps[0]本身就是一个由5个int组成的数组。
15.2、初始化二维数组
与一维数组初始化相似,可以使用这样初始化数组:
int maxtemps[4][5]=
{
{96,100,87,101,105},
{96,98,91,107,104},
{97,101,93,108,107},
{98,103,95,109,108},
};
15.3、使用二维数组
#include <iostream>
const int Cities = 5;
const int Years = 4;
int main()
{
using namespace std;
const char* cities[Cities] =
{
"Gribble City",
"Gribbletown",
"New Gribble",
"San Gribble",
"Gribble Vista"
};
int maxtemps[Years][Cities]=
{
{96,100,87,101,105},
{96,98,91,107,104},
{97,101,93,108,107},
{98,103,95,109,108},
};
cout << "Maximum temperatures for 2018-2021" << endl << endl;
for (int city = 0; city < Cities; city++)
{
cout << cities[city] << ":\t";
for (int years = 0; years < Years; years++)
{
cout << maxtemps[years][city] << "\t";
}
cout << endl;
}
return 0;
}
上面这个程序初始化了一个二维数组,并使用了一个嵌套循环,将城市索引放在外面,将年份索引放在里面 。还将一个指针数组初始化为一组字符串常量。
\t为制表符,比使用空格更好的排列数据。