1

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

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

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

4

2 回答 2

5

试试这个:

std::vector<std::vector<int>> twoDimVector(3, std::vector<int>(2, 0));
于 2016-11-30T12:08:43.710 回答
1

如果您有小的 2d 向量(如您所建议的那样),则可以很容易地实现(使用大括号初始化)。

#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
于 2016-11-30T12:11:57.713 回答