2016-03-26 16 views
-3

Ich brauche dynamisch zugewiesenen Speicherplatz von Strukturen und diese Strukturen müssen eine andere dynamisch zugewiesen enthalten. Wenn ich es manuell durchführe, wäre das mühsam.Vektor von Strukturen, die einen anderen Vektor enthält

So will ich es durch Vektoren tun:

using namespace std; 

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

vector<lol> vektt; 

Es logisch ist, dass ich es wie der Code oben tun werde, aber ich weiß nicht, wie 2 Dinge zu tun, die ich brauche werde für mein Programm:

1.iterate durch beide value s

2.Push etwas in vekt (den Vektor der Struktur) zu erhalten;

Ich habe versucht, so etwas zu schieben, aber nicht funktioniert:

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

Also muss ich wissen, wie man durch diese beiden Vektoren zu durchlaufen und wie vect Mitglieder und Methoden des Vektors zuzugreifen.

+0

lesen Sie einige Dokumentation und/oder verwenden Sie die Seitenleiste. –

+1

[Wie man iteriert] (http://stackoverflow.com/questions/409348/iteration-over-stdvector-unsigned-vs-signed-index-variable), [Wie man pusht] (http://stackoverflow.com/ Fragen/26613246/Push-back-Daten-in-2d-Vektor-in-c) –

+0

wirklich? sag nicht! vielleicht habe ich das nicht ganz verstanden und kam deswegen her? – alik33

Antwort

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

Verwenden Sie 'auto &' anstelle von 'auto' –

+0

@ M.M oder sogar' const auto & ' – Zereges

+0

wenn ich vektt [0] verwende. vek. push_back (2), es gibt mir Seg-Fehler – alik33

Verwandte Themen