📅  最后修改于: 2023-12-03 15:24:08.164000             🧑  作者: Mango
在 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 的二维向量,对其进行了初始化,然后遍历了整个数组并输出了每个元素的值。注意,这个程序需要包含 vector
、iostream
两个头文件。
#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
,对其进行了初始化,并使用嵌套的循环遍历了整个数组。