4 tapaa tehdä dynaaminen taulukko C++:ssa

1. Esittely

class cTaulukko1 {
  int lkm;
  int alkiot[5]; 
public:
...
};

class cTaulukko2 { int max_koko; int lkm; int *alkiot; public: ... };

class cTaulukko3 { int max_koko; int lkm; int **alkiot; public: ... };

class cTaulukko4 { int lkm; int *alkiot[5]; public: ... };

int main(void) { cTaulukko1 luvut(5); luvut.lisaa(2001); luvut.lisaa(22); // Kuva tästä tilanteesta luvut.tulosta(); return 0; }

2. Kuva

3. Huomautuksia

4. Muodostaminen

cTaulukko1::cTaulukko1(int iLuvut=5)
{
	lkm=0;
}


cTaulukko2::cTaulukko2(int iLuvut=5)
{
	lkm=0;
	max_koko=0;
	alkiot=new int[iLuvut];
	if (alkiot) max_koko=iLuvut;
}


cTaulukko3::cTaulukko3(int iLuvut=5)
{
	lkm=0;
	max_koko=0;
	alkiot=new int*[iLuvut];
	if (alkiot) max_koko=iLuvut;
}


cTaulukko4::cTaulukko4(int iLuvut=5)
{
	lkm=0;
}

5. Lisääminen

void cTaulukko1::lisaa(int luku) {
	if (lkm>=5) return;
	alkiot[lkm]=luku;
	lkm++;
}


void cTaulukko2::lisaa(int luku) {
	if (lkm>=max_koko) return;
	alkiot[lkm]=luku;
	lkm++;
}


void cTaulukko3::lisaa(int luku) {
	if (lkm>=max_koko) return;
	alkiot[lkm]=new int(luku);
	lkm++;
}


void cTaulukko4::lisaa(int luku) {
	if (lkm>=5) return;
	alkiot[lkm]=new int(luku);
	lkm++;
}