簡體   English   中英

初始化向量的向量,其中並非所有向量的大小都相同

[英]Initialize a vector of vectors where not all vectors are of same size C++

我有一些這樣的數據。

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向量?

如果您使用的是支持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

您可以使用括號括起來的初始化程序:

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}};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM