konflikt wektorów

0

WITAM mam dziwny problem otóż mam strukture:
struct ccc
{
short int a;
short int b;
};
a następnie wektor
vector <ccc> jeden;
i tablice wektorów
vector <ccc> zbiory[10];
a następnie wczytuje do nich dane tak:
ccc a;
for(int i = 0; i < 20; ++i)
{
cin >> a.x >> a.y;
jeden.push_back(a);
}

for(int i = 0; i < l_zbiorow; ++i)//WCZYTYWANIE ZBIORÓW
{
for(int j = 0; j < wielkosc; ++j) //
{ //
cin >> a.x >> a.y; //
zbiory[i].push_back(a); //
}
Kompiluje się ładnie ale jak odpale program to jak dochodzi do wczytywania zbiorów wywala się, jeszcze ciekawsze jest że jak wezme w komentarz " jeden.push_back(a);" to działa ok!!!! czyli jak jest tak:
ccc a;
for(int i = 0; i < 20; ++i)
{
cin >> a.x >> a.y;
//jeden.push_back(a);
}

for(int i = 0; i < l_zbiorow; ++i)//WCZYTYWANIE ZBIORÓW
{
for(int j = 0; j < wielkosc; ++j) //
{ //
cin >> a.x >> a.y; //
zbiory[i].push_back(a); //
}

WIE KTOŚ O CO BIEGA?

0

A wielkosc < 10?

0

Tak wielkość na tym przykładzie co testowałem była równa 4.

0

a skąd sie wzięło a.x i a.y skoro odwołałes sie do pól a i b? :)

0

To tylko moja pomyłka na forum bo to troche przerobiłem ale pisałem że się kompiluje a tak by przecieŻ się nie skompilowało.

Analizując dalej przykład doszedłem do wniosku że chyba chodzi o tą tablice wektorów. Tak chyba być nie może powienienym raczej utworzyć tablice wskaźników na wektory tylko jak to zrobić???

Nie jednak nie o to biega bo jak zrobiłem zwykły wektor to jest dalej to samo. Jak wstawiłem tak:

for(int j = 0; j < wielkosc; ++j)
{
cin >> a.x >> a.y;
zbiory[i].push_back(a);
cout << "S"; <- chodzi o to;
}

to wyświetliło mi 3 S mimo że wielkość była równa 4 czyli powinny być 4 obroty pętli a tu były tylko 3 po czym program się wysypał. O CO TU CHODZI?

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