Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Operator za pristup el. matrice

[es] :: C programiranje :: Operator za pristup el. matrice

[ Pregleda: 1077 | Odgovora: 7 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Ivan Vasić
Ivan Vasić
Nis

Član broj: 14756
Poruke: 631
*.114.EUnet.yu

Jabber: ivasic@elitesecurity.org


Profil

icon Operator za pristup el. matrice24.03.2004. u 22:22

Imam definisanu dinamicku matricu na sledeci nacin :
int **mat, m, n;
m i n su dimenzije. (U konstruktoru sa 2 petlje dodelim memoriju i popunim matricu....)

Kako da napravim operator za pristup elementima matrice ???

Probao sam overload operatora [] ali on može da "radi" samo sa jednom dimenzijom (da je niz u pitanju sve bi bilo OK ali ovako ne funkcioniše jer meni treba mat[][] !!!)
Jel može sa [] ili nekako drugačije ?

Poželjno bi bilo da mogu i da upišem elemente i da ih čitam istim operatorom.

ako treba mogu da pošaljem kod kojim sam overloadovao []

24.03.2004. u 22:22 

darkosos
Darko Šoš
Beograd

Član broj: 5053
Poruke: 479
*.ptt.yu

Sajt: www.geocities.com/darkoso..


Profil

icon Re: Operator za pristup el. matrice25.03.2004. u 06:27
Nisam baš neki stručnjak, ali ako si napravio klasu, onda bi rešenje bilo da napraviš prvo klasu npr. "red" i u njoj operator [] koji vraća element. Onda napraviš klasu "matrica" koja ima niz redova i u njoj kodiraš operator [] koji vraća red.
25.03.2004. u 06:27 

sspasic
Sasa Spasic

Član broj: 3261
Poruke: 175
*.medianis.net

Jabber: sspasic@elitesecurity.org
ICQ: 35454521


Profil

icon Re: Operator za pristup el. matrice25.03.2004. u 10:34
Najbolje je ovako kako je rekao Darko, ali u ovom slučaju možeš i da iskoristiš
osobinu tipa int * da se ponaša kao niz, tj. ovde kao red matrice, pa bi operator
izgledao ovako:
Code:

    int *operator[](int i) { return mat[i]; }

25.03.2004. u 10:34 

Ivan Vasić
Ivan Vasić
Nis

Član broj: 14756
Poruke: 631
*.eunet.yu

Jabber: ivasic@elitesecurity.org


Profil

icon Re: Operator za pristup el. matrice25.03.2004. u 13:28
Mislim da ovo nije baš rešenje koje mi treba...
Može ovako ali ne bi baš trebalo da pravim novu klasu.

Jel ima možda neko optimalnije rešenje ?

Možda da se primeni operator na operator tipa : Matrica[][] ?
Da li možda može ovako nekako ?
25.03.2004. u 13:28 

leka
Dejan Lekić
senior software engineer, 3Developers Ltd.
London, UK

Član broj: 234
Poruke: 2530
*.231.216.81.gus.vf.siwnet.net

Sajt: dejan.lekic.org


Profil

icon Re: Operator za pristup el. matrice25.03.2004. u 13:56
Bas mora operator ili moze Element(uint red, uint kolon) ? :)
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
25.03.2004. u 13:56 

Ivan Vasić
Ivan Vasić
Nis

Član broj: 14756
Poruke: 631
*.EUnet.yu

Jabber: ivasic@elitesecurity.org


Profil

icon Re: Operator za pristup el. matrice25.03.2004. u 14:30
Uff pa bilo bi fino kad ne bi morao operator

Evo dela teksta zadatka:
Citat:
Kreirati apstraktnu klasu KLASA1 koja u zaštićenom delu sadrži dimenzije matrice i celobrojnu dinamičku matricu. U javnom delu definisati: konstruktor, destruktor, operatorsku funkciju za pristup elementima matrice, inline funkcije ...



da, da ...
25.03.2004. u 14:30 

DDMM
Dejan D. M. Milosavljevic
Gajba, ali ne piva.

Član broj: 2544
Poruke: 89
*.sbb.co.yu

Sajt: www.ddmrm.com


Profil

icon Re: Operator za pristup el. matrice25.03.2004. u 15:38
A mozes da iskoristis i std::vector< std::vector< NekiMojTip > >.
Tu vec imas gotov operator[].


X
25.03.2004. u 15:38 

Ivan Vasić
Ivan Vasić
Nis

Član broj: 14756
Poruke: 631
*.31.EUnet.yu

Jabber: ivasic@elitesecurity.org


Profil

icon Re: Operator za pristup el. matrice25.03.2004. u 20:13
Upalilo je rešenje sspasic-a
operator je vratio pokazivač na niz, a onda je "običan" operator [] od tog niza vratio elemenat (ili postavio - radi u oba smera)

valjda je to to što su tražili ne vidim da bi moglo drugačije ....
25.03.2004. u 20:13 

[es] :: C programiranje :: Operator za pristup el. matrice

[ Pregleda: 1077 | Odgovora: 7 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.