2016-03-26 5 views
-3

Мне нужно иметь динамически выделенное пространство структур, и эти структуры должны содержать еще один динамически выделенный. Если я сделаю это с помощью ручного распределения, это будет трудоемким.Вектор структур, который содержит другой вектор

Так что я хочу сделать это с помощью векторов:

using namespace std; 

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

vector<lol> vektt; 

Это логично, что я собираюсь сделать это как код выше, но я не знаю, как сделать 2 вещи, которые я собираюсь нуждаться для моей программы:

1.iterate через них обоих, чтобы получить value сек

2.Push что-то в vekt (вектор структуры);

Я пытался что-то подобное для толкания, но не работает:

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

Так что мне нужно знать, как перебирать обоих этих векторов и как получить доступ к членам и методам вектора vect.

+0

прочитайте документацию и/или используйте боковую панель. –

+1

[Как повторить] (http://stackoverflow.com/questions/409348/iteration-over-stdvector-unsigned-vs-signed-index-variable), [Как нажать] (http://stackoverflow.com/ вопросы/26613246/push-back-data-in-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

используйте 'auto &' вместо 'auto' –

+0

@ M.M или даже' const auto & ' – Zereges

+0

, когда я использую vektt [0]. век. push_back (2), он дает мне ошибку seg – alik33

Смежные вопросы