是否可以使用构造函数将2D Vector初始化为C++中的单行程?

Ric*_*ley 7 c++ constructor stl 2d vector

是否可以初始化这样的2D矢量(这里5x4 2D矢量中的所有值都被初始化为3)?

std::vector<std::vector<int> > foo(5, std::vector<int>(4, 3));
Run Code Online (Sandbox Code Playgroud)

这似乎表现得很好,但是我在网上看到的每个人似乎都建议使用for循环和push_back()来初始化这样的向量.我最初担心这里的所有行都会指向相同的向量,但事实并非如此.我错过了什么吗?

Eri*_*rik 10

这是完全有效的 - 你将得到一个2D向量([5,4]元素),每个元素初始化为3.

对于大多数其他情况(例如,您需要在不同元素中使用不同的值),您不能使用任何单行 - 因此需要循环.