2016-03-26 10 views
-3

構造体のスペースを動的に割り当てる必要があり、構造体には動的に割り当てられた別の構造体が含まれている必要があります。私が手作業による割り当てを行うと、それは面倒です。別のベクトルを含む構造体のベクトル

は、だから私は、ベクトルを通してそれをやってみたい:

using namespace std; 

struct lol{ 
    int value; 
    vector<int> vekt; 
}; 

vector<lol> vektt; 

それは私が上記のコードのようにそれをするつもりですが、私は私が必要としています2つのことを行う方法を知らないことを、論理的です私のプログラムのために:それらの両方を通じて

1.iterate value

2.push何かvektに(構造体のベクトル)を取得します。

私は仕事をプッシュするが、doesntのためにこのような何かを試してみました:

vektt[0] . vekt . push_back(2); 

だから私はこれらのベクトルの方法と、ベクトルvectのメンバーとメソッドにアクセスするには、両方を反復処理する方法を知っておく必要があります。

+0

一部のドキュメントを読んだり、サイドバーを使ったりします。 –

+1

[How to iterate](http://stackoverflow.com/questions/409348/iteration-over-stdvector-unsigned-vs-signed-index-variable)、[押す方法](http://stackoverflow.com/質問/ 26613246/push-back-data-into-2d-vector-in-c) –

+0

本当ですか?言わないで!多分私は理解していなかったかもしれないし、そのためにここに来た? – alik33

答えて

0
// Iterating 
for (auto &i: vektt)     // or const auto &i according to requirements 
{ 
    cout << i.value << ", "; 
    for (auto j: i.vekt) cout << j << ' '; 
    cout << '\n'; 
} 
// Inserting int to vekt of i-th element of vektt 
int a; 
vektt[i].vekt.push_back(a); 
+0

vektt [0]を使用すると、 'auto'の代わりに' auto' –

+0

@MM、さらには 'const auto&' – Zereges

+0

を使用します。 vekt。 push_back(2)、それは私にsegフォールトを与えます – alik33

関連する問題