填充二维向量

时间:2014-04-13 11:50:41

标签: c++ vector

我有一组主矢量现在我想将它们推回到2dim矢量,但我不完全确定如何将每个主矢量分配给2D矢量的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如下:

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

3 个答案:

答案 0 :(得分: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 :(得分: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}
    };

答案 2 :(得分: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}
                        };