我有一组主矢量现在我想将它们推回到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);
答案 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}};
答案 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}
};