教程 cpp tutorial

一维与多维数组

在 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++ 中非常重要的数据结构之一,理解数组的声明、初始化和使用方式将帮助你处理各种复杂的算法问题。