初始化向量 C++ 的向量<doubles>

initializing a vector of vector<doubles> c++

本文关键字:向量 doubles gt lt 初始化 C++      更新时间:2023-10-16

嗨,我想初始化一个大小为9的向量,它的元素是大小为5的向量。我想把所有元素初始化为0向量。

这样正确吗?

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

或者有更短的方法来做到这一点?

您可以在一行中完成:

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

您可能还想考虑使用boost::multi_array来获得更高效的存储和访问(它避免了双指针间接)。

你可以把它们放在一行:

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

避免了未使用的局部变量。

(在c++ 11之前的编译器中,你需要留下一个空格,> > .)

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

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

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

我敢肯定这能行:

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

如果大小是固定的,您可以使用std::array代替:

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