在初始化时预先填充std :: vector?

jma*_*erx 4 c++

我想创建一个double向量的向量向量,并希望它已经有(32,32,16)个元素,而无需手动推回所有这些元素.在初始化期间有没有办法做到这一点?(我不在乎推送什么价值)

谢谢

我想要一个三维数组,第一维有32,第二维有32,第三维有16个元素

Mat*_* M. 8

一个班轮:

std::vector< std::vector< std::vector<double> > > values(32, std::vector< std::vector<double> >(32, std::vector<double>(16, 0.0)));
Run Code Online (Sandbox Code Playgroud)

或打破线条:

typedef std::vector<double> v_type;
typedef std::vector<v_type> vv_type;
typedef std::vector<vv_type> vvv_type;

vvv_type values(32, vv_type(32, v_type(16, 0.0)));
Run Code Online (Sandbox Code Playgroud)

我会说这会分配很多对象(32*32*16).

单个矢量会起作用吗?

std::vector<double> values(32*32*16, 0.0)
Run Code Online (Sandbox Code Playgroud)

那将是32*32*16-1 new.