📜  在 C++ 中初始化二维向量(1)

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

在 C++ 中初始化二维向量

在 C++ 中,我们经常需要使用二维向量来存储二维数据。在使用二维向量时,如何初始化它们是一个常见的问题。以下是本文将要探讨的主题:

  • 初始化一个空的二维向量
  • 初始化一个预定义的大小的二维向量
  • 初始化一个所有元素都相同的二维向量
  • 初始化一个由特定值填充的二维向量
  • 初始化一个包含其他向量的向量的二维向量
初始化一个空的二维向量

要初始化一个空的二维向量,我们可以使用默认构造函数。如下所示:

vector<vector<int>> vec2d;

在上面的示例中,我们创建了一个空的二维向量。我们可以通过push_back()函数向其中添加元素。

初始化一个预定义的大小的二维向量

如果我们知道二维向量的大小并且想要将其初始化为具有该大小的空向量,则可以使用以下方法:

int row = 3, col = 4;
vector<vector<int>> vec2d(row, vector<int>(col));

在上面的示例中,我们创建了一个3行4列的二维向量。注意,这里我们使用了双重vector。

我们也可以像这样使用push_back()函数添加元素:

int row = 3, col = 4;
vector<vector<int>> vec2d;
for(int i=0; i<row; ++i) {
    vector<int> row_values;
    for(int j=0; j<col; ++j) {
        row_values.push_back(j);
    }
    vec2d.push_back(row_values);
}

在上面的示例中,我们使用两个for循环从0到row-1循环,为每一行添加col个元素。

初始化一个所有元素都相同的二维向量

如果我们想要将二维向量中的所有元素初始化为相同的值,则可以使用以下方法:

int row = 3, col = 4, init_val = 1;
vector<vector<int>> vec2d(row, vector<int>(col, init_val));

在上面的示例中,我们创建了一个3行4列的二维向量,并将每个元素初始化为1。

初始化一个由特定值填充的二维向量

如果我们想要将二维向量中的每个元素都填充为特定的值,则可以使用以下方法:

int row = 3, col = 4, fill_val = 2;
vector<vector<int>> vec2d(row, vector<int>(col));
for(auto& row_values : vec2d) {
    fill(row_values.begin(), row_values.end(), fill_val);
}

在上面的示例中,我们创建了一个3行4列的二维向量,并使用fill()函数填充每个元素为2。

初始化一个包含其他向量的向量的二维向量

如果我们想要创建一个包含其他向量的向量的二维向量,则可以使用以下方法:

int row = 3, col = 4, init_val = 3;
vector<vector<int>> inner_vec(col, vector<int>(row, init_val));
vector<vector<vector<int>>> vec2d(row, inner_vec);

在上面的示例中,我们创建了一个3行4列的二维向量,其中每个元素都是一个大小为4的向量,每个内部向量都有3个元素,每个元素都是3。

以上是关于在C++中初始化二维向量的介绍。无论是大小还是值,都有多种方法来实现。通过使用这些技术,我们可以轻松地初始化二维向量来满足我们的需求。