用C++初始化2d向量

Bor*_*ain 3 c++ stl vector 2d-vector

我知道您可以通过以下方式初始化具有某个值的1d向量:

vector<int> vec(10, 100); //creates a vector of size 10 and each element = 100
Run Code Online (Sandbox Code Playgroud)

现在我想用2d矢量做同样的事情.我知道以下内容会产生错误,因为未指定列的大小:

vector<vector<int> > vec(10, 100);
Run Code Online (Sandbox Code Playgroud)

那么,有什么方法可以实现这一目标吗?此外,我想保持2d向量中每个向量的列大小相同(即nxn网格).

或者也许我可以用某种方式使用"std :: fill()"函数来实现这个目的?这个功能可以扩展到nxm网格吗?

jro*_*rok 7

vector<vector<int>> vec(10, vector<int>(10, 100));
                //       n              m   value
Run Code Online (Sandbox Code Playgroud)

这将创建10个大小为10的向量的向量,并将元素初始化为100.