GRY-Online.pl --> Archiwum Forum

C++ (o jezu, znowu ten i jego glupie pytania) czyli JA programuje ;)

21.05.2003
20:39
[1]

mallekith [ Centurion ]

C++ (o jezu, znowu ten i jego glupie pytania) czyli JA programuje ;)

hmm...
pytanie mam takie:
do zrobienia macierz kwadratowa n x n. jak moge zrobic, zeby klasa "macierz" rezerwowala sobie rozmiar tablicy 2 wymiarowej w zaleznosci od potrzeby?
class macierz ‹

double *tablica;
int rozmiar;



mozna uzyc operatora new ale uzycie takie:

tablica = new [rozmiar][rozmiar];

jest bledne. prosze o pomoc.

21.05.2003
20:46
[2]

Cainoor [ Mów mi wuju ]

mallekith --->

możesz tworzyć rozmiar tablicy dwuwymiarowej tylko z jednym wymiarem nie sprecyzowanym np [10][x]
niestety nie można zadeklarować tablicy [n][m]

21.05.2003
20:50
[3]

Cainoor [ Mów mi wuju ]

Możesz zadeklarować tak:

new int[n] - tworzy to Ci tablice n elementów typu int, ale wartością tego wyrażenia jest wskaźnik na int (a nie na tablice)

Nie można napisać new int[n][m], gdyż nie ma takiego typu jak int[m]...

21.05.2003
20:53
[4]

mallekith [ Centurion ]

czyli:
musze sobie jeden wymiar zdefiniowac. ale macierz ma byc kwadratowa, wiec obojetnie czy zdefiniuje jeden rozmiar czy 2. no jednynie bedzie sie roznic tym ze bedzie zajmowal wiecej pamieci, np jezeli bede potrzebowal macierz 10 x 10 a tam sobie zarezerwuje 100 x 100 to bedize wiecej zajmowac niz taki 100 x 10 :))

a mam do ciebie jedno pytanie (i do pozostalych, jezeli ktos tu zaglada ;) ): czy trudno napisac szablon tablicy tak, zeby poprawnie realizowal tablice tablic?

21.05.2003
20:55
[5]

mallekith [ Centurion ]

kurde, czyl;i czegos nie rozumiem. musze mu zadac tak pamieci zeby od razu iedzial ile ma sobie przydzielic. wiec jak bede chcial macierz 2 wymiarowa [n][m] to jeden musze miec juz z gory staly a drugoi sobie moge robic new, tak?

21.05.2003
21:03
smile
[6]

Cainoor [ Mów mi wuju ]

mallekith --->

"wiec jak bede chcial macierz 2 wymiarowa [n][m] to jeden musze miec juz z gory staly a drugoi sobie moge robic new, tak?"

Tak.

"czy trudno napisac szablon tablicy tak, zeby poprawnie realizowal tablice tablic?"

Nie jest to raczej trudne do zrealizowania :)

21.05.2003
21:05
[7]

mallekith [ Centurion ]

hueh, wiec prowadzac nasza dyskusje dalej:
ten szablon, no nie ;)) to definiuje sobie klase np tab, gdzie bedzie wartosc elementu i wskaznik do nastepnego, ale czy moglbys mi powiedzic czy dobrze rozumuje czy nie bardzo... ? bo nie mam nawet wogole pomyslu zeby zrobic ten szablon.

21.05.2003
21:09
[8]

Cainoor [ Mów mi wuju ]

mallekith --->

Hmm... wg mnie najprościej będzie, jak zrobisz poprostu tablice wskaźników, na tablice. Chyba nie potrzeba innego kombinowania.

21.05.2003
21:11
[9]

Regis [ ]

Hej, hej, hej... Chyba cos sie nie zgadza... Akurat pisze pewien program na infe dot. macierzy i tez mialem ten problem. I mozna dynamicznie zarezerwowac tablice o okrteslonych wymiarach! Robi sie to metoda wskaznik do wskaznika na tablice :) Zainteresowanych odsylam do tego tekstu - powodzenai :)

21.05.2003
21:11
[10]

Regis [ ]

Cainoor nie uprzedzil :P

21.05.2003
21:13
[11]

mallekith [ Centurion ]

tylko to ma byc szablon klasy. ta klasa realizuje tablice jednowymiarowa. ale dobry wzorzec powinien poprawnie realizowac szablon tablicy tablic. ale to ma byc klasa tablica.

22.05.2003
00:51
[12]

mallekith [ Centurion ]

hm....
zdefiniowalem sobie taka klase:

class macierz

private:
int rozmiar;
int **tablica;
public:
macierz();
macierz(int rozm);



macierz::macierz(int rozm) //konstruktor

tablica = new int*[rozm];
for(int k=0; k<rozm;k++) tablica[k] = int new[rozm]; //i tu mi mowi ze mam expresion syntax in function macierz::macierz(int)


nie wiem gdze tkwi blad.... :|

22.05.2003
07:51
smile
[13]

Eliash [ Generaďż˝ ]

mallekith -> W jednym z Twoich poprzednich wątków zamieściłem prawie kompletny kod klasy macierzy (poza mnożeniem bo już zapomniałem jak to się robi :) )

22.05.2003
14:28
[14]

tomek4 [ Centurion ]

mallekith -> "new int[]" a nie "int new[p]"

© 2000-2024 GRY-OnLine S.A.