📜  如何在 C++ 中使用向量创建二维数组(1)

📅  最后修改于: 2023-12-03 15:24:08.164000             🧑  作者: Mango

如何在 C++ 中使用向量创建二维数组

在 C++ 中,我们可以使用二维数组来存储和处理多维的数据,二维数组通常是由一维数组组成的,它们在内存中是按行或列依次存放的。但是,传统的二维数组有其缺点,比如数组大小必须在编译时指定,并且不能动态分配和释放。在这种情况下,向量成为了一个很好的解决方案,它可以动态地分配和释放内存,并且大小也可以在运行时确定。

创建二维向量

在 C++ 中,使用 vector 类来创建向量。对于二维向量,可以使用一个向量的向量来存储数据。具体来说,可以使用以下语法创建一个二维向量:

vector<vector<int>> matrix;

这个语法创建了一个二维向量 matrix,它是一个向量的向量,其中每个向量都存储了一行元素。我们可以使用 push_back() 函数向 matrix 中添加新的行,例如:

vector<int> row = {1, 2, 3};
matrix.push_back(row);

这个语法创建了一个新的行向量 row,它存储了值为 1、2、3 的三个元素。然后,我们将 row 添加到 matrix 中,成为新的一行。

访问二维向量

一旦创建了二维向量,就可以使用索引运算符 [] 来访问其中的元素。例如,如果要访问第 i 行、第 j 列上的元素,可以使用以下语法:

int element = matrix[i][j];

这个语法从 matrix 中选择第 i 个向量(也就是第 i 行),然后从这个向量中选择第 j 个元素(也就是第 j 列)。

示例代码

下面是一个简单的示例代码,它创建了一个 3×3 的二维向量,对其进行了初始化,然后遍历了整个数组并输出了每个元素的值。注意,这个程序需要包含 vectoriostream 两个头文件。

#include <iostream>
#include <vector>
using namespace std;

int main() {
    // 创建一个 3x3 的二维向量 matrix,并初始化
    vector<vector<int>> matrix = {
        {1, 2, 3},
        {4, 5, 6},
        {7, 8, 9}
    };

    // 遍历 matrix,输出每个元素的值
    for (int i = 0; i < matrix.size(); i++) {
        for (int j = 0; j < matrix[i].size(); j++) {
            cout << matrix[i][j] << " ";
        }
        cout << endl;
    }

    return 0;
}

运行这个程序后,输出结果如下:

1 2 3
4 5 6
7 8 9

这个程序创建了一个 3×3 的二维向量 matrix,对其进行了初始化,并使用嵌套的循环遍历了整个数组。