2014-04-13 49 views
0

我有一組主要向量,現在我想將它們推回到2dim向量中,但我不完全確定如何將每個主向量分配給2D向量的1維?填充2維向量

vector< vector<int>> V; 
vector<int> p1; 
vector<int> p2; 
vector<int> p3; 
P1=[0,1,2,3]; 
p2=[4,5,6,7]; 
p3=[8,9,10,11]; 

我想是爲了填補V作爲如下:

V={{0,1,2,3},{4,5,6,7},{8,9,10,11}}; 

我能做到這一點,如下::

V.push_back(p1); 
V.push_back(p2); 
V.push_back(p3); 
+0

而你的問題是什麼? – erenon

+0

'P1 = [0,1,2,3];'你的意思是'矢量 p1 = {0,1,2,3};'?好的。 –

+2

@erenon _'And your question is?'_我可以這樣做嗎? –

回答

1

是的,你可以使用不同的std::vector<int>變量和V.push_back(p1)

雖然對於簡單的靜態初始化這句法works至少在C++ 11:

std::vector<std::vector<int>> V = 
    { std::vector<int>{0,1,2,3} 
    , std::vector<int>{4,5,6,7} 
    , std::vector<int>{8,9,10,11} 
    }; 
1

是的,你可以這樣說:

vector<vector<int> > V; 
vector<int> p1; 
vector<int> p2; 
vector<int> p3; 

p1 = { 0,1,2,3}; 
// ^ ^
p2 = { 4,5,6,7}; 
p3 = { 8,9,10,11}; 

V.push_back(p1); 
V.push_back(p2); 
V.push_back(p3); 

並且最終結果將與V = { { 0,1,2,3}, { 4,5,6,7}, { 8,9,10,11}};

http://ideone.com/Edxn0O

1

它會工作,除了你需要替換

P1=[0,1,2,3]; 
p2=[4,5,6,7]; 
p3=[8,9,10,11]; 

通過

P1={0,1,2,3}; 
p2={4,5,6,7}; 
p3={8,9,10,11}; 

或者你可以簡單地使用(在C++ 11):

vector<vector<int>> V = { {0,1,2,3}, 
          {4,5,6,7}, 
          {8,9,10,11} 
         };