Wektor list

0

Witam,
mam problem z wektorem list

mam takie pole klasy:

vector <list<Wierzcholek> > listaSasiedztwa;

później w jednej z metod robię tak:

listaSasiedztwa[x].push_back(Wierzcholek(y));

program się kompiluje, natomiast powyższa linijka powoduje błąd naruszenia pamięci. próbowałem określić rozmiar w ten sposób:

vector <list<Wierzcholek> > listaSasiedztwa(10);

oraz tak:

vector <list<Wierzcholek> > listaSasiedztwa(const int N=4);

ale to się nie kompilowało
jak rozwiązać ten problem?

1

Cały kod poprosim. Słabo wnioskować coś na podstawie tych paru linijek.

2

Zanim zaczniesz pushbackować elementy list, najpierw musisz pushbacknąć same listy, czyli elementy wektora.

listaSasiedztwa[x].push_back(Wierzcholek(y));

program się kompiluje, natomiast powyższa linijka powoduje błąd naruszenia pamięci.

Bo element [x] wektora nie istnieje.

2

Uruchom kod w trybie debug z IDE, jak poleci crash to poszukaj okienka "Call stack" i go przeanalizuj i sprawdź zawartość zmiennych.
W ten sposób znajdziesz źródło problemu.

0
Azarien napisał(a):

Zanim zaczniesz pushbackować elementy list, najpierw musisz pushbacknąć same listy, czyli elementy wektora.

listaSasiedztwa[x].push_back(Wierzcholek(y));

program się kompiluje, natomiast powyższa linijka powoduje błąd naruszenia pamięci.

Bo element [x] wektora nie istnieje.

Dzięki, pomogło :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1