vector c ++中的声明

时间:2013-06-18 19:49:16

标签: c++ vector initialization

我第一次尝试使用c ++编写代码,我找到了这一行:

vector<vector<vector<double> > > h(hist1, vector<vector<double> >(hist2, vector<double>(nb_bins, 0.0)));

我不明白这意味着什么,你能帮帮我们吗?感谢。

2 个答案:

答案 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/