2013-05-12 64 views
-3

我想創建一個包含變量大小(n1 n2 3和n4)的4個向量的列表,並且全部填充爲0 我該怎麼做?我可以做一個list<vector<float> > mylist但是如何將mylist [0]的大小設置爲n1等?向量列表(C++)

回答

7
// on a C++11 enabled compiler 
std::list<std::vector<float>> listofvectors = { 
    std::vector<float>(n1, 0.f) 
    , std::vector<float>(n2, 0.f) 
    , std::vector<float>(n3, 0.f) 
    , std::vector<float>(n4, 0.f) 
}; 
// or more traditional 
std::list< std::vector<float> > listofvectors; 
listofvectors.push_back(std::vector<float>(n1, 0.f)); 
// so forth 
+3

這是格式化逗號的一種不尋常的方式。 :P – 2013-05-12 13:45:34

+0

謝謝,很抱歉成爲一個新手,但爲什麼你寫0.f而不是0?一些與浮動有關的東西?我們不能只寫0嗎? – user2370139 2013-05-12 13:48:35

+0

@sftrabbit不,爲什麼? Boost總是使用它,在指定初始化列表時會更好,因爲第一個字符是':',接下來是逗號,因此格式化這些行更加容易。我猜,我們還沒有看到多行初始化列表中的「標準」方式。 – 2013-05-12 14:00:39

2

你必須將這些載體添加到您的列表:

mylist.push_back(vector<float>(n1, 0.f)); 
mylist.push_back(vector<float>(n2, 0.f)); 
mylist.push_back(vector<float>(n3, 0.f)); 
mylist.push_back(vector<float>(n4, 0.f)); 

vector構造函數接受兩個參數將會創建一個與所有設置爲第二個參數的值(第一個參數)的元素。