-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]] 

次に、それから 2d ベクトルを作成します。

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

しかし、これはあまりにも退屈で、括弧がたくさんあります。

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 に答える