Kopiowanie tablic
Ostatnio zmodyfikowano 2015-04-19 23:31
dek12 Temat założony przez niniejszego użytkownika |
» 2015-04-19 23:17:26 rozrozniam rozmiar od pojemnosci. size to pojemnosc u mnie, a ilosc elementow jakie sa to po prostu ilosc. z czego akurat w tej metodzie nie korzystam.
a jak mam to obejsc bez tyj tymczasowej tablicy? tab jest wskaznikiem na klase element. w klasie tablica w konstruktorze alokuje pamiec (przypisuje ja do tab) na 1 element. w destruktorze zwalniam tego tab;a. i tutaj, w resize musze zwolnic tego tab, no nie? ale zeby go zwolnic to musze przpisac jego elementu do nowej tablicy (czyli do tymczasowej) bo potem na nowo alokuje pamiec podpinajac go do tego pola prywatnego tab. bo inaczej to jak to zwalniac? jakby stworzyl poporstu nowa tablice o rozmiarze 2x wieksza, przepisal do niego wszystko z taba i taba usunal, to kiedy mialbym usuwac ta nowa tablice? |
|
pekfos |
» 2015-04-19 23:22:32 a jak mam to obejsc bez tyj tymczasowej tablicy? |
Alokować nową większą, skopiować dane ze starej, zwolnić starą i zastąpić ją nową..? |
|
Quirinnos |
» 2015-04-19 23:30:39 Pokaż więcje kodu. |
|
dek12 Temat założony przez niniejszego użytkownika |
» 2015-04-19 23:31:43 no tez tak myslalem, tylko... nie wiem jak class el { int x; } class tab { public: tab() { pojemnosc = 1; Elementy = new el[ pojemnosc ] } ~tab() { delete[] Elementy; } void dodanieEl( int x ) { if( iloscElementow >= pojemnosc ) { el * nowyEl = new el[ pojemnosc * 2 ] } private: el * Elementy; static int iloscElementow; } int tab::iloscElementow = 0; |
|
1 « 2 » |