c++ (dev)
Witam,
mam pytanko: Jak zdefiniowac tablicę, której elementami są tablice struktur ??? O ile mozna oczywiście
Tablice struktur mam zdefiniowane nastepujaco:
typedef struct punkt
{
double x, y;
};
punkt tab[413454];
c++ (dev)
Witam,
mam pytanko: Jak zdefiniowac tablicę, której elementami są tablice struktur ??? O ile mozna oczywiście
Tablice struktur mam zdefiniowane nastepujaco:
typedef struct punkt
{
double x, y;
};
punkt tab[413454];
punkt tab[pierwszy_wymiar][drugi_wymiar];
typedef struct
{
double x, y;
} PUNKT;
PUNKT tab[413454];
PUNKT *TablicaTablic[3];
for(unsigned i=0;i<3;++i) TablicaTablic[i]=(PUNKT*)malloc((10+5*i)*sizeof(PUNKT));
TablicaTablic[0] // 10 - elementowa tablica punktów
TablicaTablic[1] // 15 - elementowa tablica punktów
TablicaTablic[2] // 20 - elementowa tablica punktów
Inne warianty:
PUNKT Tab[5][10]; // pięć tablic o rozmiarze 10
lub:typedef PUNKT PUNKTTAB[15];
PUNKTTAB Tb[7]; // siedem tablic o rozmiarze 15
Niestety te ostatnie dwa warianty raczej są nie tablicami tablic tylko tablicami dwuwymiarowymi czyli w każdym wierszu tyle samo kolumn.
W pierwszym wariancie w każdym wierszu może być różna ilość kolumn.
No i oczywiście należy wspomnieć o:
```cpp
vector<vector<PUNKT> > Tab(8,vector<PUNKT>(4)); // Tablica tablic 8 tablic każda rozmiarem 4 ale każdy wiersz można osobno rozszerzyć bądź skrócić.
lub:
struct punkt
{
double x, y;
};
punkt tab[413454]; // dla c++ w c koniecznie: struct punkt tab[413454];
mam linie składające się różnych ilości punktów o wspolrzednych x i y,
przykałdowa linia wyglada tak:
Data0=(49.53458,20.64231),(49.53453,20.64200),(49.53482,20.64113),(49.53493,20.64041)
Przeszukuje ją i zapisuje punkty do tablicy struktur:
#define NMAX 1000000
...
typedef struct
{
double x, y;
} punkt;
PUNKT tab[413454];
PUNKT TablicaTablic[NMAX];
...
//przeszukanie lini****
int k=0;
for (int i = 0, pos = 7; i < linia.length(); i++)
{
tab[k].x=atof((linia.substr(pos, i - pos-9)).c_str());
tab[k].y=atof((linia.substr(i-8, 8)).c_str());
pos = i + 3;
k++;
}
Jak przypisac tablice struktur ( zestaw punktow) do n-tego elementu tablicy tablic ??? gdzie 'n' to numer lini
Jak zauważyłem z innego postu w którym wyszukiwałeś wiersze zaczynające się z "Data0=" w pliku - nie masz sposobu na zliczenie ilości takich grup ani na zliczenie ilości punktów w grupie.
więc zastanów się nad użyciem jednego z:
list<list<punkt> >LisaList;
vector<list<punkt> >TablicaList;
while(plik)
{
LisaList.push_back(list<punkt>());
while(wiersz)
{
punkt p;
p.x=...; p.y=...;
LisaList.back().push_back(punkt);
}
}