problem z wektorem wektorów typu int

0

witajcie
napisałem prostą strukturę danych, która w większości przypadków działa. mowa o czymś takim:

typedef vector<int> wektorInt;
vector<wektorInt> polaczenia;

po zapisaniu do niego określonej ilości danych w jednej z funkcji zamieściłem instrukcje

if(polaczenia[pobierz][0]==0) ...

problem w tym, że gdy warunek jest spełniony nie pokazuje żadnego błędu, ale gdy nie jest - przerywa program i wyświetla "List index out of bounds". co ciekawsze bez problemu wyświetla zawartość tablicy polaczenia[pobierz] bezpośrednio przed instrukcją warunkową niezależnie od tego czy jest ona spełniana.

for(int i=0; i<polaczenia[pobierz].size(); ++i)
StringGrid1->Cells[i][0] = polaczenia[pobierz][i];
if(polaczenia[pobierz][0]==0) ...

nie wiem co z tym zrobić, jeśli ktoś ma pomysł będę wdzięczny za pomoc.

pozdrawiam</cpp>

0
  1. Na pewno błąd wywala się w linii if? a nie dalej w jakimś else?
  2. Może spróbuj zamiast int i dać iterator? Choć to raczej nie to... taka tylko myśl.
0

Spróbowałem rozwiązać to bardziej okrężnie tzn.

if(find(polaczenia[pobierz].begin(),polaczenia[pobierz].end(),0)!=polaczenia[pobierz].end()) ...

ale wynik był ten sam... Gdy pętle for umieściłem pod warunkiem to wypełniał tablicę StringGrid tylko wtedy gdy warunek był spełniony.

0

Marooned: masz rację. W dalszym else przeindeksowałem tablicę. Dzięki i przepraszam za posta.

Pozdrawiam</wiki>

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