2016-12-16 4 views
1

Lets sagen, ich habe eine Struktur:Können wir struct, das Vektor enthält, ohne Konstruktor zurückschieben?

struct group{ 
    vector<int> a; 
    vector<int> b; 
    vector<int> c; 
}; 

Dann erstelle ich einen Vektor dieser Struktur:

std::vector<group> group_vec; 

Was ich zu tun war von

group obj; 
obj.a.push_back(1); 
obj.a.push_back(4); 
obj.b.push_back(6); 
obj.b.push_back(7); 
group_vec.push_back(obj); 

als

Äquivalent gesucht
group_vec.push_back({{1,4},{6,7},{}}); // equivalent of above's object pushing 
+0

Sie wollten es tun, und hat es nicht funktioniert, als Sie gingen und es getan haben? – AndyG

+0

@AndyG Ich hatte versucht ohne -std = C++ 11, also gab es mir Kompilierungsfehler – solti

+0

Nachdem ich versucht habe mit '-std = C++ 11' Kompilierungsflagge funktionierte es – solti

Antwort

4

Ja, wir können

group_vec.push_back({{1,2},{2,3}}); 

Wir verwenden Konstrukteure in dieser Aussage tun, aber ich nehme an, dass Sie „ohne einen benutzerdefinierten Konstruktor“ gemeint.