ustawianie rozmiaru tablicy, która jest elementem klasy

0

Cześć, stworzyłem klasę podstawową, w której umieściłem tablicę double Wynik[L][ilosc];
Zmienna L jest zmienną globalną z góry zdeklarowaną. Natomiast, chcę podczas konstrukcji obiektu zmieniać drugi rozmiar tablicy.
Niestety kompilator pluje się, że zmienna ilość nie jest constans...

1

Nie ma takiej możliwości. Masz dwie opcji obejścia problemu:

  1. deklarujesz:
double **Wynik;

w konstruktorze:Wynik=new double*[IleWierszy]; for(unsigned i=0;i<IleWierszy;++i) Wynik[i]=new double[IleKolumn];

w destruktorze:<code class="cpp">for(unsigned i=0;i<IleWierszy;++i) delete[] Wynik[i]; delete[] Wynik;

Odwolanie do y,x:Wynik[y][x];

#deklarujesz:
```cpp
double *Wynik;

w konstruktorze:Wynik=new double[IleWierszy*IleKolumn];

w destruktorze:<code class="cpp">delete[] Wynik;

Odwolanie do y,x:Wynik[y*IleKolumn+x];

1

Skoro jeden rozmiar jest znany to możesz też zrobić tak:

// wynik jest L-elementową tablicą wskaźników na double.
double *wynik[L];

for (size_t i = 0; i < L; ++i) {
  wynik[i] = new double[ilosc];
}
// itd...
0

możesz zrobić takie coś :

 
std::vector<std::vector<double>> array2D;
std::vector<double> drugiRozmiar(zmiennaRozmiar);
array2D.push_back(drugiRozmiar);
//później dodajesz tyle tablic 1D o zmiennym rozmiarze ile wynosi tak jakby rozmiar najbardziej z lewej 
0

@robcio, jeżeli już to:

std::vector<std::vector<double> > Tb(PierwszyRozmiar,std::vector<double>(DrugiRozmiar,0));

Ale chyba rozumiesz że nie o to chodzi w tym zadaniu.

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