初始化向量<doubles> c ++ </doubles>的向量

时间:2011-09-22 17:52:47

标签: c++ vector

嗨我想初始化一个9号向量,其元素是大小的向量,比如说5.我想将所有元素初始化为零向量。

这种方式是否正确?

vector<double> z(5,0);

vector< vector<double> > diff(9, z);

或者有更短的方法吗?

5 个答案:

答案 0 :(得分:12)

您可以在一行中执行此操作:

vector<vector<double> > diff(9, vector<double>(5));

您可能还需要考虑使用boost::multi_array来实现更高效的存储和访问(避免双指针间接)。

答案 1 :(得分:5)

你可以把它全部放在一行:

vector<vector<double>> diff(9, vector<double>(5));

这可以避免使用未使用的局部变量。

(在C ++ 11之前的编译器中,您需要留出空格> >。)

答案 2 :(得分:5)

vector< vector<double> > diff(9, std::vector<double>(5, 0));

但是,在编译时已知大小的特定情况下,可以使用C数组:

double diff[9][5] = { { 0 } };

答案 3 :(得分:4)

非常确定这会奏效:

vector< vector<double> > diff(9, vector<double>(5,0));

答案 4 :(得分:4)

如果尺寸已修复,您可以改为使用std::array

std::array<std::array<double,5>,9> diff = {};