-1

我想知道如何有效地执行以下操作。给定整数括号,相应地创建一个 stl 向量?

例如给定

[[-9],[-8,0],[-3,2,5],[6,3,0,-4],[-2,-9,-5,-8,6],[0,-5,0,-2,-1,5],[0,6,-1,-5,-8,6,-5],[-8,-5,-9,-8,-4,-3,-5,7]] 

然后,从中构造一个二维向量。

vector<vector <int> > vv;

编辑:

  1. 我没有最新的c++11编译器,所以直接构造的方式就像,

    标准::向量 v({ 1, 2, 3, 4, 5 });

    不是我想要的。

  2. 我目前的想法如下。

    整数 x1[1]={-9};

    整数 x2[2]={-8, 0}; ...

    std::vector v1(x1, x1 + sizeof x1 / sizeof x1[0]);

    std::vector v2(x2, x2 + sizeof x2 / sizeof x2[0]); ...

    vv.push_back(v1);

    vv.push_back(v2); ...

但这太繁琐了,我的括号也不少。

4

1 回答 1

1

你的意思:

#include <vector>

int main()
{
  std::vector<std::vector<int>> vv = {{-9},{-8,0},{-3,2,5},{6,3,0,-4},{-2,-9,-5,-8,6},{0,-5,0,-2,-1,5},{0,6,-1,-5,-8,6,-5},{-8,-5,-9,-8,-4,-3,-5,7}}; 
}

现场示例(C++11 模式下的 gcc / clang)。

于 2013-09-16T08:49:52.937 回答