reserve()内存多维std :: vector(C++)

Shi*_*bli 5 c++ memory-management stdvector multidimensional-array

我们有

std::vector <std::vector <unsigned short int>> face;
face.resize(nElm);
Run Code Online (Sandbox Code Playgroud)

它可以resize()用于第一维.但是,我也想reserve()记住脸上的元素; 我的意思是第二个维度.(我知道之间的差异resize()reserve())

Joh*_*erg 4

做就是了

face.resize(nElm);
for(auto &i : face) i.resize(nDim2);
Run Code Online (Sandbox Code Playgroud)

或者如果您不使用 c++11:

face.resize(nElm);
for(std::vector < std::vector < unsigned short int> >::iterator it
                =face.begin();it!=face.end();++it) {
   it->resize(dim2);
}
Run Code Online (Sandbox Code Playgroud)

如果您只想reserve获得第二个维度,那么就这样做而不是resize