Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
vinko Forumaš(ica)
Pridružen/a: 26. 08. 2006. (23:08:00) Postovi: (1A8)16
Spol:
Lokacija: PMF-MO 214
|
|
[Vrh] |
|
Gost
|
|
[Vrh] |
|
vinko Forumaš(ica)
Pridružen/a: 26. 08. 2006. (23:08:00) Postovi: (1A8)16
Spol:
Lokacija: PMF-MO 214
|
Postano: 20:48 sri, 9. 4. 2008 Naslov: Re: pitanja vezana uz zadaću |
|
|
[quote="Anonymous"]Što trebaju vraćati funkcije poveži i ukloni vezu?
Što je drugi element para u povratnom vektoru funkcije najkraciPutevi ? pretpostavljam udaljenost gradova?[/quote]
trebaju vraćati staru udaljenost tih gradova, dakle -1 ako nisu bili povezani, 0 ako se radi o istom gradu, ili postavljenu udaljenost ako su povezani
da, drugi element treba biti najkraća udaljenost ta dva grada. Kod te funkcije treba vratiti samo one gradove koji su povezani s danim gradom (dakle, bez ovih 0 i -1)
Anonymous (napisa): | Što trebaju vraćati funkcije poveži i ukloni vezu?
Što je drugi element para u povratnom vektoru funkcije najkraciPutevi ? pretpostavljam udaljenost gradova? |
trebaju vraćati staru udaljenost tih gradova, dakle -1 ako nisu bili povezani, 0 ako se radi o istom gradu, ili postavljenu udaljenost ako su povezani
da, drugi element treba biti najkraća udaljenost ta dva grada. Kod te funkcije treba vratiti samo one gradove koji su povezani s danim gradom (dakle, bez ovih 0 i -1)
|
|
[Vrh] |
|
Mad Wilson Forumaš(ica)
Pridružen/a: 29. 05. 2006. (22:51:14) Postovi: (121)16
|
|
[Vrh] |
|
vinko Forumaš(ica)
Pridružen/a: 26. 08. 2006. (23:08:00) Postovi: (1A8)16
Spol:
Lokacija: PMF-MO 214
|
Postano: 22:32 sri, 9. 4. 2008 Naslov: |
|
|
[quote="Mad Wilson"]Sto radi funkcija [u]povezi[/u] pozvana na vec povezanim gradovima. Postavlja novu vrijednost i vraca staru?[/quote]
ne radi ništa. mislim da piše da se to neće desiti.
EDIT: Oprostite, prvo sam mislio da vraća staru udaljenost (a postavi manju od stare i nove), a poslije sam se predomislio, pa stavio u tekst da se to neće dogoditi. To se dakle neće dogoditi, pa je možete staviti void.
Tijekom sutrašnjeg dana ću napisati tekst dosta detaljnije, te se nadam da će se sva ta pitanja razjasniti. Stavit ću obavijest kada ispravim tekst.
Mad Wilson (napisa): | Sto radi funkcija povezi pozvana na vec povezanim gradovima. Postavlja novu vrijednost i vraca staru? |
ne radi ništa. mislim da piše da se to neće desiti.
EDIT: Oprostite, prvo sam mislio da vraća staru udaljenost (a postavi manju od stare i nove), a poslije sam se predomislio, pa stavio u tekst da se to neće dogoditi. To se dakle neće dogoditi, pa je možete staviti void.
Tijekom sutrašnjeg dana ću napisati tekst dosta detaljnije, te se nadam da će se sva ta pitanja razjasniti. Stavit ću obavijest kada ispravim tekst.
|
|
[Vrh] |
|
nana Forumaš(ica)
Pridružen/a: 29. 11. 2005. (12:24:35) Postovi: (2AD)16
Spol:
|
|
[Vrh] |
|
vinko Forumaš(ica)
Pridružen/a: 26. 08. 2006. (23:08:00) Postovi: (1A8)16
Spol:
Lokacija: PMF-MO 214
|
|
[Vrh] |
|
vinko Forumaš(ica)
Pridružen/a: 26. 08. 2006. (23:08:00) Postovi: (1A8)16
Spol:
Lokacija: PMF-MO 214
|
|
[Vrh] |
|
Mad Wilson Forumaš(ica)
Pridružen/a: 29. 05. 2006. (22:51:14) Postovi: (121)16
|
|
[Vrh] |
|
vinko Forumaš(ica)
Pridružen/a: 26. 08. 2006. (23:08:00) Postovi: (1A8)16
Spol:
Lokacija: PMF-MO 214
|
|
[Vrh] |
|
Mad Wilson Forumaš(ica)
Pridružen/a: 29. 05. 2006. (22:51:14) Postovi: (121)16
|
|
[Vrh] |
|
vinko Forumaš(ica)
Pridružen/a: 26. 08. 2006. (23:08:00) Postovi: (1A8)16
Spol:
Lokacija: PMF-MO 214
|
|
[Vrh] |
|
chiica Forumaš(ica)
Pridružen/a: 03. 11. 2006. (20:13:17) Postovi: (3D)16
Spol:
|
|
[Vrh] |
|
Mad Wilson Forumaš(ica)
Pridružen/a: 29. 05. 2006. (22:51:14) Postovi: (121)16
|
|
[Vrh] |
|
chiica Forumaš(ica)
Pridružen/a: 03. 11. 2006. (20:13:17) Postovi: (3D)16
Spol:
|
|
[Vrh] |
|
vinko Forumaš(ica)
Pridružen/a: 26. 08. 2006. (23:08:00) Postovi: (1A8)16
Spol:
Lokacija: PMF-MO 214
|
Postano: 14:49 sub, 12. 4. 2008 Naslov: |
|
|
[quote="chiica"]imam recimo ovaj kod unutar jedne const funkcije klase 'grad':
[code:1]map<int, int> a;
map<int, int>::iterator i;
i=a.begin();[/code:1]
i javlja greske u tom 3. retku. "`grad::a' cannot appear in a constant-expression, a function call cannot appear in a constant-expression " na primjer.
u cemu je problem? u tome sto je funkcija const, ili ne smijem koristiti iterator ili sto..?[/code][/quote]
sa const_iteratorom bi moralo raditi ako je kôd točno takav.
da li je mapa element klase?
ako je (i ako je neka kompliciranije, a ne map<int,int>) probajte ju staviti kao mutabile element klase. Ne kažem da je to dobro rješenje, ali smo onda našli grešku... onda bi možda mapa trebala biti neštko kao
map<const ..., ...>
chiica (napisa): | imam recimo ovaj kod unutar jedne const funkcije klase 'grad':
Kod: | map<int, int> a;
map<int, int>::iterator i;
i=a.begin(); |
i javlja greske u tom 3. retku. "`grad::a' cannot appear in a constant-expression, a function call cannot appear in a constant-expression " na primjer.
u cemu je problem? u tome sto je funkcija const, ili ne smijem koristiti iterator ili sto..?[/code] |
sa const_iteratorom bi moralo raditi ako je kôd točno takav.
da li je mapa element klase?
ako je (i ako je neka kompliciranije, a ne map<int,int>) probajte ju staviti kao mutabile element klase. Ne kažem da je to dobro rješenje, ali smo onda našli grešku... onda bi možda mapa trebala biti neštko kao
map<const ..., ...>
|
|
[Vrh] |
|
Mad Wilson Forumaš(ica)
Pridružen/a: 29. 05. 2006. (22:51:14) Postovi: (121)16
|
Postano: 17:50 ned, 13. 4. 2008 Naslov: |
|
|
OK. Stavljam test [b]main.cpp[/b] koji je meni pomogao da otklonim mnoge greske. Main je poduzi, no takav je zadatak; ima puno funkcija. Uz main stavljam i output, jer je s obzirom na velicinu spretnije usporediti dva [b]out[/b] file-a (sa [b]fc[/b]-om u konzoli na primjer) nego gledati red po red.
Uglavnom, grafove mreza sam radio napamet, pa ako netko dobije isti output za najkrace puteve, neka mi svakako javi; to nam udvostrucuje sanse da smo dijkstriju dobro implementirali. :)
P.S. PITANJE; getUdaljenost na istom gradu vraca -1 ili 0? Ja sam radio da pretpostavio da vraca -1, jer grad nije povezan sam sa sobom (ne postoji put).
EDIT: promjenio sam out.txt; ispisivala se jedna poruka koju sam ostavio u programu. Uglavnom sad sam ju maknuo.
EDIT2: Jao, pa pise u zadatku odgovor na pitanje, skriven iznad svih funkcija. My mistake. :oops: Ispravljeno.
[color=red][b]EDIT3[/b]:[/color] Postoji [url=http://degiorgi.math.hr/forum/viewtopic.php?p=98234#98234][b]novi stari out[/b][/url].
OK. Stavljam test main.cpp koji je meni pomogao da otklonim mnoge greske. Main je poduzi, no takav je zadatak; ima puno funkcija. Uz main stavljam i output, jer je s obzirom na velicinu spretnije usporediti dva out file-a (sa fc-om u konzoli na primjer) nego gledati red po red.
Uglavnom, grafove mreza sam radio napamet, pa ako netko dobije isti output za najkrace puteve, neka mi svakako javi; to nam udvostrucuje sanse da smo dijkstriju dobro implementirali.
P.S. PITANJE; getUdaljenost na istom gradu vraca -1 ili 0? Ja sam radio da pretpostavio da vraca -1, jer grad nije povezan sam sa sobom (ne postoji put).
EDIT: promjenio sam out.txt; ispisivala se jedna poruka koju sam ostavio u programu. Uglavnom sad sam ju maknuo.
EDIT2: Jao, pa pise u zadatku odgovor na pitanje, skriven iznad svih funkcija. My mistake. Ispravljeno.
EDIT3: Postoji novi stari out.
Zadnja promjena: Mad Wilson; 13:23 sri, 23. 4. 2008; ukupno mijenjano 7 put/a.
|
|
[Vrh] |
|
chiica Forumaš(ica)
Pridružen/a: 03. 11. 2006. (20:13:17) Postovi: (3D)16
Spol:
|
Postano: 20:37 pon, 14. 4. 2008 Naslov: |
|
|
neke probleme rjesila, a novi se javili :)
imam mapu, trebam se kretati po njoj pomocu iteratora i pritom brisati neke elemente mape. u vjezbama (STL) pise za vektor da treba paziti, da se pritom znaju pobrkati iteratori, i pise da koristimo:
[code:1]it=v.erase(it);[/code:1]
jer erase vraca pokazivac na element poslije onoga koji je obrisao.
pokusala sam to isto s mapom, ali mi javlja gresku, pa sam malo googlala i na nekim mjestima pise da map::erase vraca iterator, a negdje da vraca void.
uglavnom, koji mi je siguran nacin za brisanje elemenata iz mape?
neke probleme rjesila, a novi se javili
imam mapu, trebam se kretati po njoj pomocu iteratora i pritom brisati neke elemente mape. u vjezbama (STL) pise za vektor da treba paziti, da se pritom znaju pobrkati iteratori, i pise da koristimo:
jer erase vraca pokazivac na element poslije onoga koji je obrisao.
pokusala sam to isto s mapom, ali mi javlja gresku, pa sam malo googlala i na nekim mjestima pise da map::erase vraca iterator, a negdje da vraca void.
uglavnom, koji mi je siguran nacin za brisanje elemenata iz mape?
|
|
[Vrh] |
|
m00nblade Forumaš(ica)
Pridružen/a: 30. 10. 2005. (13:26:10) Postovi: (54)16
Spol:
|
Postano: 20:56 pon, 14. 4. 2008 Naslov: |
|
|
Pogledaj [url=http://www.cplusplus.com/reference/stl/map/erase.html]ovdje[/url], mozda ti pomogne
kad za map::erase posaljes iterator, onda vraca void...
ako brises po vrijednosti kljuca, onda vraca broj obrisanih elemenata, sto je kod mape 1 ili 0...
mislim da ti je najsigurnije brisati po vrijednosti kljuca, na primjer:
[code:1]
map <tip1, tip2>::iterator mi;
for (mi = mapa.begin(); mi != mapa.end(); mi++)
if (uvjet)
mapa.erase (mi->first);
[/code:1]
mislim da bi ovako trebalo raditi :?
Pogledaj ovdje, mozda ti pomogne
kad za map::erase posaljes iterator, onda vraca void...
ako brises po vrijednosti kljuca, onda vraca broj obrisanih elemenata, sto je kod mape 1 ili 0...
mislim da ti je najsigurnije brisati po vrijednosti kljuca, na primjer:
Kod: |
map <tip1, tip2>::iterator mi;
for (mi = mapa.begin(); mi != mapa.end(); mi++)
if (uvjet)
mapa.erase (mi->first);
|
mislim da bi ovako trebalo raditi
_________________ Real programmers don't comment their code. If it was hard to write, it should be hard to read.
|
|
[Vrh] |
|
vinko Forumaš(ica)
Pridružen/a: 26. 08. 2006. (23:08:00) Postovi: (1A8)16
Spol:
Lokacija: PMF-MO 214
|
Postano: 21:23 pon, 14. 4. 2008 Naslov: |
|
|
[quote="m00nblade"]Pogledaj [url=http://www.cplusplus.com/reference/stl/map/erase.html]ovdje[/url], mozda ti pomogne
kad za map::erase posaljes iterator, onda vraca void...
ako brises po vrijednosti kljuca, onda vraca broj obrisanih elemenata, sto je kod mape 1 ili 0...
mislim da ti je najsigurnije brisati po vrijednosti kljuca, na primjer:
[code:1]
map <tip1, tip2>::iterator mi;
for (mi = mapa.begin(); mi != mapa.end(); mi++)
if (uvjet)
mapa.erase (mi->first);
[/code:1]
mislim da bi ovako trebalo raditi :?[/quote]
Ja mislim da taj kod ne bi trebao raditi. Napravio bi istu grešku kao i mapa.erase(mi), koja će nekad skršiti program (jer se sljedeći ++mi nemora dobro izvršiti), a nekad ne. Zavisi o više stvari, ali općenito nije dobro.
Mogli bi raditi:
[code:1]map <tip1, tip2>::iterator mi;
for (mi = mapa.begin(); mi != mapa.end(); )
if (uvjet)
mapa.erase (mi++);
else ++mi;[/code:1]
Iako nije tako u svim verzijama, u STLu na VSu mapa.erase(iterator) vraća iterator na sljedeći element, pa bi mogli koristiti
[code:1]for (mi = mapa.begin(); mi != mapa.end(); )
if (uvjet)
mi = mapa.erase (mi);
else ++mi;[/code:1]
m00nblade (napisa): | Pogledaj ovdje, mozda ti pomogne
kad za map::erase posaljes iterator, onda vraca void...
ako brises po vrijednosti kljuca, onda vraca broj obrisanih elemenata, sto je kod mape 1 ili 0...
mislim da ti je najsigurnije brisati po vrijednosti kljuca, na primjer:
Kod: |
map <tip1, tip2>::iterator mi;
for (mi = mapa.begin(); mi != mapa.end(); mi++)
if (uvjet)
mapa.erase (mi->first);
|
mislim da bi ovako trebalo raditi |
Ja mislim da taj kod ne bi trebao raditi. Napravio bi istu grešku kao i mapa.erase(mi), koja će nekad skršiti program (jer se sljedeći ++mi nemora dobro izvršiti), a nekad ne. Zavisi o više stvari, ali općenito nije dobro.
Mogli bi raditi:
Kod: | map <tip1, tip2>::iterator mi;
for (mi = mapa.begin(); mi != mapa.end(); )
if (uvjet)
mapa.erase (mi++);
else ++mi; |
Iako nije tako u svim verzijama, u STLu na VSu mapa.erase(iterator) vraća iterator na sljedeći element, pa bi mogli koristiti
Kod: | for (mi = mapa.begin(); mi != mapa.end(); )
if (uvjet)
mi = mapa.erase (mi);
else ++mi; |
|
|
[Vrh] |
|
|