主题
一维与多维数组
在 C++ 中,数组是一种用于存储相同类型数据的集合。数组中的元素通过索引来访问,索引从 0 开始。数组可以是一维的(只有一行数据),也可以是多维的(有多个数据维度)。本节将详细介绍如何在 C++ 中使用一维和多维数组。
一维数组
声明与初始化
一维数组用于存储多个相同类型的元素,声明时需要指定数组的大小。
cpp
#include <iostream>
using namespace std;
int main() {
// 声明并初始化一个包含 5 个整数的数组
int arr[5] = {1, 2, 3, 4, 5};
// 访问数组元素
cout << "第一个元素: " << arr[0] << endl; // 输出: 1
cout << "第二个元素: " << arr[1] << endl; // 输出: 2
// 遍历数组并输出所有元素
for (int i = 0; i < 5; i++) {
cout << "arr[" << i << "] = " << arr[i] << endl;
}
return 0;
}
输出:
第一个元素: 1
第二个元素: 2
arr[0] = 1
arr[1] = 2
arr[2] = 3
arr[3] = 4
arr[4] = 5
默认初始化
如果未为数组提供初始化值,C++ 会将其初始化为零(对于全局数组)或未定义的垃圾值(对于局部数组)。
cpp
int arr[5]; // 未初始化的局部数组,值是未定义的
多维数组
二维数组
二维数组可以看作是数组的数组,常用于表示矩阵或表格数据。声明时,需要指定行数和列数。
cpp
#include <iostream>
using namespace std;
int main() {
// 声明并初始化一个 2x3 的二维数组
int arr[2][3] = {{1, 2, 3}, {4, 5, 6}};
// 访问二维数组元素
cout << "arr[0][0] = " << arr[0][0] << endl; // 输出: 1
cout << "arr[1][2] = " << arr[1][2] << endl; // 输出: 6
// 遍历二维数组
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
cout << "arr[" << i << "][" << j << "] = " << arr[i][j] << endl;
}
}
return 0;
}
输出:
arr[0][0] = 1
arr[1][2] = 6
arr[0][0] = 1
arr[0][1] = 2
arr[0][2] = 3
arr[1][0] = 4
arr[1][1] = 5
arr[1][2] = 6
三维数组
三维数组是更高维度的数组,通常用于表示三维空间中的数据。
cpp
#include <iostream>
using namespace std;
int main() {
// 声明并初始化一个 2x2x2 的三维数组
int arr[2][2][2] = {{{1, 2}, {3, 4}}, {{5, 6}, {7, 8}}};
// 访问三维数组元素
cout << "arr[0][0][0] = " << arr[0][0][0] << endl; // 输出: 1
cout << "arr[1][1][1] = " << arr[1][1][1] << endl; // 输出: 8
return 0;
}
输出:
arr[0][0][0] = 1
arr[1][1][1] = 8
动态分配数组
C++ 允许使用 new
关键字来动态分配数组,可以用于创建不定大小的数组。
cpp
#include <iostream>
using namespace std;
int main() {
// 动态分配一维数组
int* arr = new int[5];
// 初始化数组元素
for (int i = 0; i < 5; i++) {
arr[i] = i + 1;
}
// 输出数组
for (int i = 0; i < 5; i++) {
cout << "arr[" << i << "] = " << arr[i] << endl;
}
// 释放动态分配的内存
delete[] arr;
return 0;
}
小结
- 一维数组:用于存储多个相同类型的元素,访问时通过索引。
- 多维数组:数组的数组,常用于表示矩阵或表格数据,可以是二维、三维及更高维度。
- 动态数组:使用
new
关键字进行动态分配,适用于大小不确定的数组。 - 在使用数组时,特别是在动态分配数组时,要确保释放内存(使用
delete[]
)。
数组是 C++ 中非常重要的数据结构之一,理解数组的声明、初始化和使用方式将帮助你处理各种复杂的算法问题。