我第一次尝试使用c ++编写代码,我找到了这一行:
vector<vector<vector<double> > > h(hist1, vector<vector<double> >(hist2, vector<double>(nb_bins, 0.0)));
我不明白这意味着什么,你能帮帮我们吗?感谢。
答案 0 :(得分:2)
让我们打开它!
vector<vector<vector<double> > >
h(hist1,
vector<vector<double> > (hist2,
vector<double> (nb_bins, 0.0) ) );
这是名为vector<vector<vector<double> > >
的{{1}}类型变量的声明。 h
通过调用其构造函数进行初始化,作为第一个参数h
传入,并将第二个参数作为hist1
类型的临时对象进行初始化。该临时对象又通过调用其构造函数进行初始化,将vector<vector<double> >
作为其第一个参数传递,并将临时hist2
作为其第二个参数传递。然后通过调用其构造函数初始化第二个临时文件,将vector<double>
作为其第一个参数传递,并将nb_bins
作为其第二个参数传递。
结果是,这最终作为维度0.0
×hist1
×hist2
的三维数组,其中每个值都初始化为0.0。
也就是说,如果你想使用一个3D数组,请查看Boost.MultiArray包,它提供了一个很多更清晰的方法来实现这一点。
希望这有帮助!
答案 1 :(得分:0)
它是双向量矢量向量,类似于三维立体数组。见这里:http://www.cplusplus.com/reference/vector/vector/