仅使用 1 行 C++ 初始化二维向量

initializing 2d vector using only 1 line c++

我需要能够在创建它的同一行初始化一个 int 的二维向量。

更具体地说,我必须创建一个 3x2 大小的二维向量,并将其所有值设置为 0,仅使用 1 行代码.

有没有一种方法可以在不使用 for 循环和几行代码的情况下完成此操作?

试试这个:

std::vector<std::vector<int>> twoDimVector(3, std::vector<int>(2, 0));

如果你有小的二维向量(就像你建议的那样),它可以很容易地实现(使用 brace-init)。

#include <vector>
#include <iostream>

int main(){

    std::vector<std::vector<int>> vec{ { 0, 0 }, { 0, 0 }, { 0, 0 } };

    std::cout << "vec size = " << vec.size() << "x" << vec[0].size() << std::endl;

    return 0;
}

输出:

vec size = 3x2