Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Kopiowanie tablic

Ostatnio zmodyfikowano 2015-04-19 23:31
Autor Wiadomość
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?
P-131184
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ą..?
P-131185
Quirinnos
» 2015-04-19 23:30:39
Pokaż więcje kodu.
P-131186
dek12
Temat założony przez niniejszego użytkownika
» 2015-04-19 23:31:43
no tez tak myslalem, tylko... nie wiem jak
C/C++
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 ]
            //kopiuje do nowegoEl z Elementy...
            //i co teraz?
            //usuwam Elementy i przepinam Elementy = nowyEl? tak bedzie dobrze, bez wyciekow?
           
           
        }
    private:
        el * Elementy;
        static int iloscElementow;
    }
   
    int tab::iloscElementow = 0;
P-131187
1 « 2 »
Poprzednia strona Strona 2 z 2