从整数括号构造一个向量

时间:2013-09-16 08:39:52

标签: c++ c++11 vector string-parsing

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

e.g。给定

[[-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编译器,所以直接构建的方式就像

    std :: vector v({1,2,3,4,5});

    不是我想要的。

  2. 我目前的想法如下:

    int x1 [1] = { - 9};

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

  3. 但这太繁琐了,我有很多括号。

1 个答案:

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

Live example(C ++ 11模式下的gcc / clang)。