嗨我想初始化一个9号向量,其元素是大小的向量,比如说5.我想将所有元素初始化为零向量。
这种方式是否正确?
vector<double> z(5,0);
vector< vector<double> > diff(9, z);
或者有更短的方法吗?
答案 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 = {};