初始化向量向量,其中并非所有向量都具有相同大小的C ++

时间:2015-07-23 13:38:15

标签: c++ string vector

我有一些这样的数据。

static const double v1_arr={2,3,4}
vector<double> v1_vec(v1_arr, v1_arr + sizeof(v1_arr[0]))

static const double v2_arr={9,6}
vector<double> v2_vec(v2_arr, v2_arr + sizeof(v2_arr[0]))

static const double v3_arr={9,6,7,6}
vector<double> v3_vec(v3_arr, v3_arr + sizeof(v3_arr[0]))

如何初始化包含上述三个向量的向量v_v的向量?

2 个答案:

答案 0 :(得分:4)

如果您使用的是支持C++11的编译器,则只需执行

即可
vector<vector<double>> v_3{v1_vec, v2_vec, v3_vec};

如果没有,你将不得不做类似

的事情
vector<vector<double>> v_3;
v_3.push_back(v1_vec);
v_3.push_back(v2_vec);
v_3.push_back(v3_vec);

请注意,如果您可以使用C++11功能,则只需初始化此类其他向量

vector<double> v1_vec{1.0, 2.0, 3.0};

并跳过中间v1_arr

答案 1 :(得分:3)

您可以使用括号括起初始值设定项:

vector<vector<double>> v_3{v1_vec, v2_vec, v3_vec};

除非您需要“数组”和“矢量对象(假设您修复语法错误以实际声明某些数组),否则整个事情可以简化为

vector<vector<double>> v_3{{2, 3, 4}, {9, 6}, {9, 6, 7, 6}};