Search
 
 
  Engleski
 
 
 
Open in this window (click to change)
Forum@DeGiorgi: Početna
Forum za podršku nastavi na PMF-MO
Login Registracija FAQ Smajlići Članstvo Pretražnik Forum@DeGiorgi: Početna

1. zadaca
WWW:
Idite na Prethodno  1, 2, 3, 4, 5, 6, 7, 8, 9, 10  Sljedeće
Moja sarma
 
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji diplomskih i starih studija -> Objektno programiranje (C++)
Prethodna tema :: Sljedeća tema  
Autor/ica Poruka
Cobs
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 21. 01. 2008. (13:32:15)
Postovi: (206)16
Spol: muško
Sarma = la pohva - posuda
26 = 40 - 14
Lokacija: Geto

PostPostano: 18:24 čet, 7. 4. 2011    Naslov: Citirajte i odgovorite

[quote="Ally"][quote]Implementirajte:
1. konstruktore: prazan konstruktor, konstruktor koji stvara skup s jednim elemetom tipa T, [b]konstruktor koji STL spremnik pretvara u skup elementa[/b][/quote]
A kak da se ovo zadnje protumači?[/quote]

Ja bi to ovak sebi protumačio...
Ak imaš neki STL spremnik ( vector, set, multiset, list... ) - označit ćemo taj spremnik sa SPREMNIK, a klasa skup koji sam ja napravio za dz nek se zove Moj_Skup, onda bi konstruktor bio tipa:

Moj_Skup X( SPREMNIK );

tj. onaj skup koji sam ja napravio za zadacu bi trebao imati konstruktor koji će primiti taj spremnik i sve njegove elemente poslagati u skup ( Moj_Skup ). ( Al tak bi si ja protumačio, tak da ako si u nedoumici pošalji mail asistentu )
Ally (napisa):
Citat:
Implementirajte:
1. konstruktore: prazan konstruktor, konstruktor koji stvara skup s jednim elemetom tipa T, konstruktor koji STL spremnik pretvara u skup elementa

A kak da se ovo zadnje protumači?


Ja bi to ovak sebi protumačio...
Ak imaš neki STL spremnik ( vector, set, multiset, list... ) - označit ćemo taj spremnik sa SPREMNIK, a klasa skup koji sam ja napravio za dz nek se zove Moj_Skup, onda bi konstruktor bio tipa:

Moj_Skup X( SPREMNIK );

tj. onaj skup koji sam ja napravio za zadacu bi trebao imati konstruktor koji će primiti taj spremnik i sve njegove elemente poslagati u skup ( Moj_Skup ). ( Al tak bi si ja protumačio, tak da ako si u nedoumici pošalji mail asistentu )


[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
Ally
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 15. 04. 2008. (19:57:23)
Postovi: (7F)16
Spol: žensko
Sarma = la pohva - posuda
17 = 19 - 2

PostPostano: 9:06 pet, 8. 4. 2011    Naslov: Citirajte i odgovorite

[quote="Cobs"]
Ja bi to ovak sebi protumačio...
Ak imaš neki STL spremnik ( vector, set, multiset, list... ) - označit ćemo taj spremnik sa SPREMNIK, a klasa skup koji sam ja napravio za dz nek se zove Moj_Skup, onda bi konstruktor bio tipa:

Moj_Skup X( SPREMNIK );

tj. onaj skup koji sam ja napravio za zadacu bi trebao imati konstruktor koji će primiti taj spremnik i sve njegove elemente poslagati u skup ( Moj_Skup ). ( Al tak bi si ja protumačio, tak da ako si u nedoumici pošalji mail asistentu )[/quote]

Da, tak sam i ja to skužila ;)
Al (nadam se da ovo nebu ispalo preglupo pitanje) buni me to koji STL spremnik da ja "pretvaram" u svoj skup? Postoji dosta STL spremnika.. Nekak mi je najlogičnije da, ako koristim implementaciju preko vektora, napravim konstruktor za vector? Ili treba nešto (ak postoji) opčenito?
Hmm, mislim da mi je najbolje da pošaljem mail asistentu..
Cobs (napisa):

Ja bi to ovak sebi protumačio...
Ak imaš neki STL spremnik ( vector, set, multiset, list... ) - označit ćemo taj spremnik sa SPREMNIK, a klasa skup koji sam ja napravio za dz nek se zove Moj_Skup, onda bi konstruktor bio tipa:

Moj_Skup X( SPREMNIK );

tj. onaj skup koji sam ja napravio za zadacu bi trebao imati konstruktor koji će primiti taj spremnik i sve njegove elemente poslagati u skup ( Moj_Skup ). ( Al tak bi si ja protumačio, tak da ako si u nedoumici pošalji mail asistentu )


Da, tak sam i ja to skužila Wink
Al (nadam se da ovo nebu ispalo preglupo pitanje) buni me to koji STL spremnik da ja "pretvaram" u svoj skup? Postoji dosta STL spremnika.. Nekak mi je najlogičnije da, ako koristim implementaciju preko vektora, napravim konstruktor za vector? Ili treba nešto (ak postoji) opčenito?
Hmm, mislim da mi je najbolje da pošaljem mail asistentu..



_________________
I just wanna dance..
[Vrh]
Korisnički profil Pošaljite privatnu poruku
sagi
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 30. 10. 2010. (14:46:39)
Postovi: (16)16
Sarma = la pohva - posuda
= 2 - 1

PostPostano: 14:05 pet, 8. 4. 2011    Naslov: Citirajte i odgovorite

Ally jesi slala mail asistentu? dobila odgovor? :)
Ally jesi slala mail asistentu? dobila odgovor? Smile


[Vrh]
Korisnički profil Pošaljite privatnu poruku
tidus
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 16. 02. 2009. (12:47:59)
Postovi: (A5)16
Spol: muško
Sarma = la pohva - posuda
-1 = 15 - 16

PostPostano: 20:19 pet, 8. 4. 2011    Naslov: Citirajte i odgovorite

[quote="Ally"][quote="Cobs"]
Ja bi to ovak sebi protumačio...
Ak imaš neki STL spremnik ( vector, set, multiset, list... ) - označit ćemo taj spremnik sa SPREMNIK, a klasa skup koji sam ja napravio za dz nek se zove Moj_Skup, onda bi konstruktor bio tipa:

Moj_Skup X( SPREMNIK );

tj. onaj skup koji sam ja napravio za zadacu bi trebao imati konstruktor koji će primiti taj spremnik i sve njegove elemente poslagati u skup ( Moj_Skup ). ( Al tak bi si ja protumačio, tak da ako si u nedoumici pošalji mail asistentu )[/quote]

Da, tak sam i ja to skužila ;)
Al (nadam se da ovo nebu ispalo preglupo pitanje) buni me to koji STL spremnik da ja "pretvaram" u svoj skup? Postoji dosta STL spremnika.. Nekak mi je najlogičnije da, ako koristim implementaciju preko vektora, napravim konstruktor za vector? Ili treba nešto (ak postoji) opčenito?
Hmm, mislim da mi je najbolje da pošaljem mail asistentu..[/quote]

Mozes za opceniti STL spremnik koristiti template<class tip>, samo onda kada zelis prijaviti iterator na opceniti STL spremnik moras pisati typename tip::iterator i;
Ne radi bez typename. Mozda si to znala, al meni je stvaralo probleme...
I bas sam glup nisam procitao da se nesmiju koristiti STL spremnici i poceo pisati tako da radim s vectorom :x
Ally (napisa):
Cobs (napisa):

Ja bi to ovak sebi protumačio...
Ak imaš neki STL spremnik ( vector, set, multiset, list... ) - označit ćemo taj spremnik sa SPREMNIK, a klasa skup koji sam ja napravio za dz nek se zove Moj_Skup, onda bi konstruktor bio tipa:

Moj_Skup X( SPREMNIK );

tj. onaj skup koji sam ja napravio za zadacu bi trebao imati konstruktor koji će primiti taj spremnik i sve njegove elemente poslagati u skup ( Moj_Skup ). ( Al tak bi si ja protumačio, tak da ako si u nedoumici pošalji mail asistentu )


Da, tak sam i ja to skužila Wink
Al (nadam se da ovo nebu ispalo preglupo pitanje) buni me to koji STL spremnik da ja "pretvaram" u svoj skup? Postoji dosta STL spremnika.. Nekak mi je najlogičnije da, ako koristim implementaciju preko vektora, napravim konstruktor za vector? Ili treba nešto (ak postoji) opčenito?
Hmm, mislim da mi je najbolje da pošaljem mail asistentu..


Mozes za opceniti STL spremnik koristiti template<class tip>, samo onda kada zelis prijaviti iterator na opceniti STL spremnik moras pisati typename tip::iterator i;
Ne radi bez typename. Mozda si to znala, al meni je stvaralo probleme...
I bas sam glup nisam procitao da se nesmiju koristiti STL spremnici i poceo pisati tako da radim s vectorom Mad


[Vrh]
Korisnički profil Pošaljite privatnu poruku
Ally
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 15. 04. 2008. (19:57:23)
Postovi: (7F)16
Spol: žensko
Sarma = la pohva - posuda
17 = 19 - 2

PostPostano: 20:45 pet, 8. 4. 2011    Naslov: Citirajte i odgovorite

[quote="sagi"]Ally jesi slala mail asistentu? dobila odgovor? :)[/quote]
Mejl je poslan. Kad dođe odgovor, tu ću ga napisati ;)

[quote]Mozes za opceniti STL spremnik koristiti template<class tip>, samo onda kada zelis prijaviti iterator na opceniti STL spremnik moras pisati typename tip::iterator i;
Ne radi bez typename. Mozda si to znala, al meni je stvaralo probleme...
I bas sam glup nisam procitao da se nesmiju koristiti STL spremnici i poceo pisati tako da radim s vectorom [/quote]

Joj, hvala, ova informacija/ideja je jako korisna. Probat ću nekaj s tim :)
I da, ista stvar. Ja sam prvo počela pisati preko liste, i onda sam skužila da se nijedan STL ne smije koristiti. Pa sam se bacila na čitanje skripte iz SPA :?
sagi (napisa):
Ally jesi slala mail asistentu? dobila odgovor? Smile

Mejl je poslan. Kad dođe odgovor, tu ću ga napisati Wink

Citat:
Mozes za opceniti STL spremnik koristiti template<class tip>, samo onda kada zelis prijaviti iterator na opceniti STL spremnik moras pisati typename tip::iterator i;
Ne radi bez typename. Mozda si to znala, al meni je stvaralo probleme...
I bas sam glup nisam procitao da se nesmiju koristiti STL spremnici i poceo pisati tako da radim s vectorom


Joj, hvala, ova informacija/ideja je jako korisna. Probat ću nekaj s tim Smile
I da, ista stvar. Ja sam prvo počela pisati preko liste, i onda sam skužila da se nijedan STL ne smije koristiti. Pa sam se bacila na čitanje skripte iz SPA Confused



_________________
I just wanna dance..
[Vrh]
Korisnički profil Pošaljite privatnu poruku
tidus
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 16. 02. 2009. (12:47:59)
Postovi: (A5)16
Spol: muško
Sarma = la pohva - posuda
-1 = 15 - 16

PostPostano: 22:46 pet, 8. 4. 2011    Naslov: Citirajte i odgovorite

Imamo implementirati parametrizirani SET s parametrom T. Podrazumjeva li se da T može biti neki STL spremnik, npr. vector? Tj. mora li naš program moći baratati sa SETom vector-a? Ili će T biti samo neki osnovni tip podataka (int, string, char, itd.)? Imam problema sa ispisivanjem u slučaju SETa nekih spremnika, pa pitam.
Imamo implementirati parametrizirani SET s parametrom T. Podrazumjeva li se da T može biti neki STL spremnik, npr. vector? Tj. mora li naš program moći baratati sa SETom vector-a? Ili će T biti samo neki osnovni tip podataka (int, string, char, itd.)? Imam problema sa ispisivanjem u slučaju SETa nekih spremnika, pa pitam.


[Vrh]
Korisnički profil Pošaljite privatnu poruku
Ally
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 15. 04. 2008. (19:57:23)
Postovi: (7F)16
Spol: žensko
Sarma = la pohva - posuda
17 = 19 - 2

PostPostano: 10:21 sub, 9. 4. 2011    Naslov: Citirajte i odgovorite

[quote="sagi"]Ally jesi slala mail asistentu? dobila odgovor? :)[/quote]
Asistent Puljić kaže da bi trebalo napraviti da radi opčenito za bilo koji STL bez obzira na odabranu implemetaciju.
Tidus je dao ideju, treba ju realizirati ;)
sagi (napisa):
Ally jesi slala mail asistentu? dobila odgovor? Smile

Asistent Puljić kaže da bi trebalo napraviti da radi opčenito za bilo koji STL bez obzira na odabranu implemetaciju.
Tidus je dao ideju, treba ju realizirati Wink



_________________
I just wanna dance..
[Vrh]
Korisnički profil Pošaljite privatnu poruku
glava
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 28. 03. 2007. (18:48:16)
Postovi: (89)16
Spol: muško
Sarma = la pohva - posuda
= 8 - 3

PostPostano: 14:54 pon, 11. 4. 2011    Naslov: Citirajte i odgovorite

Smijemo li mi tu koristiti malloc i free umjesto new i delete? Pitam jer bi mi trebala i funkcija realloc. Postoji li mozda neki nacin u c++-u za tu realokaciju?

hvala
Smijemo li mi tu koristiti malloc i free umjesto new i delete? Pitam jer bi mi trebala i funkcija realloc. Postoji li mozda neki nacin u c++-u za tu realokaciju?

hvala


[Vrh]
Korisnički profil Pošaljite privatnu poruku
anjcho
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 19. 10. 2008. (12:38:54)
Postovi: (6)16
Spol: žensko
Sarma = la pohva - posuda
= 0 - 0
Lokacija: Jarun :)

PostPostano: 17:07 pon, 11. 4. 2011    Naslov: Citirajte i odgovorite

Meni jos uvijek nije jasno koji vrag da radim s komplementom:) Jel ima ko kakvu ideju?:)
Meni jos uvijek nije jasno koji vrag da radim s komplementom:) Jel ima ko kakvu ideju?Smile



_________________
(\__/)
(=’.’=)
(")_(")
This is ZEC. Copy and paste ZEC into your signature to help him gain world domination.
[Vrh]
Korisnički profil Pošaljite privatnu poruku
Ally
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 15. 04. 2008. (19:57:23)
Postovi: (7F)16
Spol: žensko
Sarma = la pohva - posuda
17 = 19 - 2

PostPostano: 18:33 pon, 11. 4. 2011    Naslov: Citirajte i odgovorite

[quote="anjcho"]Meni jos uvijek nije jasno koji vrag da radim s komplementom:) Jel ima ko kakvu ideju?:)[/quote]
Haha, ok, barem nisam jedina. Jer ni ja nemam apsolutno nikakvu ideju.

[quote]Prilikom implementacije skupa ne smijete koristiti STL spremnike. [/quote]
To znači da u konstruktoru koji STL spremnik pretvara u moj skup ne smijemo koristiti npr. size(); , begin(); i end(); ? Jer ja znam samo pomoću toga napisati :S
anjcho (napisa):
Meni jos uvijek nije jasno koji vrag da radim s komplementom:) Jel ima ko kakvu ideju?Smile

Haha, ok, barem nisam jedina. Jer ni ja nemam apsolutno nikakvu ideju.

Citat:
Prilikom implementacije skupa ne smijete koristiti STL spremnike.

To znači da u konstruktoru koji STL spremnik pretvara u moj skup ne smijemo koristiti npr. size(); , begin(); i end(); ? Jer ja znam samo pomoću toga napisati :S



_________________
I just wanna dance..
[Vrh]
Korisnički profil Pošaljite privatnu poruku
lorozic
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 08. 12. 2008. (17:11:14)
Postovi: (50)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
= 11 - 3

PostPostano: 22:18 pon, 11. 4. 2011    Naslov: Citirajte i odgovorite

[quote="Ally"][quote="anjcho"]Meni jos uvijek nije jasno koji vrag da radim s komplementom:) Jel ima ko kakvu ideju?:)[/quote]
Haha, ok, barem nisam jedina. Jer ni ja nemam apsolutno nikakvu ideju.

[quote]Prilikom implementacije skupa ne smijete koristiti STL spremnike. [/quote]
To znači da u konstruktoru koji STL spremnik pretvara u moj skup ne smijemo koristiti npr. size(); , begin(); i end(); ? Jer ja znam samo pomoću toga napisati :S[/quote]

Pa smijemo ih koristiti jer pripadaju spremniku kojeg koristimo. Logicno mi je da se pod "ne koristiti STL" mislilo iskljucivo na implementiranje samog SET-a, npr da nemremo koristiti automatsko alociranje od vectora ili automatsko pazenje na "duplice" iz seta.

Mene zanima dal smijemo pretpostaviti da set sadrzi objekte koji imaju definiran uredjaj.

[size=9][color=#999999]Added after 5 minutes:[/color][/size]

[quote="glava"]Smijemo li mi tu koristiti malloc i free umjesto new i delete? Pitam jer bi mi trebala i funkcija realloc. Postoji li mozda neki nacin u c++-u za tu realokaciju?

hvala[/quote]

Mislim da mi je asistent rekel da C++ ima i svoj malloc i slicno, al nisam siguran.

U svakom slucaju mozes polje realocirati pomocu par new i delete naredbi. Prvo alociras memorije kolko ti treba nakon dodavanja novih elemenata u polje, onda iz starog polja prekopiras elemente u novo polje, prekopiras i nove elemente, a onda pomocu delete[] brises staro polje. samo pazi da kad brises polje pises "delete[]" a ne samo "delete", i to je to.
Ally (napisa):
anjcho (napisa):
Meni jos uvijek nije jasno koji vrag da radim s komplementom:) Jel ima ko kakvu ideju?Smile

Haha, ok, barem nisam jedina. Jer ni ja nemam apsolutno nikakvu ideju.

Citat:
Prilikom implementacije skupa ne smijete koristiti STL spremnike.

To znači da u konstruktoru koji STL spremnik pretvara u moj skup ne smijemo koristiti npr. size(); , begin(); i end(); ? Jer ja znam samo pomoću toga napisati :S


Pa smijemo ih koristiti jer pripadaju spremniku kojeg koristimo. Logicno mi je da se pod "ne koristiti STL" mislilo iskljucivo na implementiranje samog SET-a, npr da nemremo koristiti automatsko alociranje od vectora ili automatsko pazenje na "duplice" iz seta.

Mene zanima dal smijemo pretpostaviti da set sadrzi objekte koji imaju definiran uredjaj.

Added after 5 minutes:

glava (napisa):
Smijemo li mi tu koristiti malloc i free umjesto new i delete? Pitam jer bi mi trebala i funkcija realloc. Postoji li mozda neki nacin u c++-u za tu realokaciju?

hvala


Mislim da mi je asistent rekel da C++ ima i svoj malloc i slicno, al nisam siguran.

U svakom slucaju mozes polje realocirati pomocu par new i delete naredbi. Prvo alociras memorije kolko ti treba nakon dodavanja novih elemenata u polje, onda iz starog polja prekopiras elemente u novo polje, prekopiras i nove elemente, a onda pomocu delete[] brises staro polje. samo pazi da kad brises polje pises "delete[]" a ne samo "delete", i to je to.



_________________
Listen to Reason...
http://www.youtube.com/watch?v=hQjrlsSGJrs
[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail
HB
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 06. 01. 2011. (10:31:56)
Postovi: (A)16
Sarma = la pohva - posuda
= 0 - 0

PostPostano: 8:30 uto, 12. 4. 2011    Naslov: Citirajte i odgovorite

[quote="lorozic"]

Mene zanima dal smijemo pretpostaviti da set sadrzi objekte koji imaju definiran uredjaj.
[/quote]

U skripti iz SPA piše da se pretpostavlja da na elementima skupa postoji neki totalni uređaj, i da možemo govoriti o tome da li je neki objekt manji ili veći od drugog.
Pa ću i ja tako pretpostavit :)
lorozic (napisa):


Mene zanima dal smijemo pretpostaviti da set sadrzi objekte koji imaju definiran uredjaj.


U skripti iz SPA piše da se pretpostavlja da na elementima skupa postoji neki totalni uređaj, i da možemo govoriti o tome da li je neki objekt manji ili veći od drugog.
Pa ću i ja tako pretpostavit :)



_________________
HB to the rescue!
[Vrh]
Korisnički profil Pošaljite privatnu poruku
Ally
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 15. 04. 2008. (19:57:23)
Postovi: (7F)16
Spol: žensko
Sarma = la pohva - posuda
17 = 19 - 2

PostPostano: 11:29 uto, 12. 4. 2011    Naslov: Citirajte i odgovorite

[quote="lorozic"]Pa smijemo ih koristiti jer pripadaju spremniku kojeg koristimo. Logicno mi je da se pod "ne koristiti STL" mislilo iskljucivo na implementiranje samog SET-a, npr da nemremo koristiti automatsko alociranje od vectora ili automatsko pazenje na "duplice" iz seta.
[/quote]
Da, tak sam i ja pretpostavila. Al pitam da nebi ispalo da je moje tumačenje pogrešno. Tenks! :D

A nitko još nema ideju za komplement?
lorozic (napisa):
Pa smijemo ih koristiti jer pripadaju spremniku kojeg koristimo. Logicno mi je da se pod "ne koristiti STL" mislilo iskljucivo na implementiranje samog SET-a, npr da nemremo koristiti automatsko alociranje od vectora ili automatsko pazenje na "duplice" iz seta.

Da, tak sam i ja pretpostavila. Al pitam da nebi ispalo da je moje tumačenje pogrešno. Tenks! Very Happy

A nitko još nema ideju za komplement?



_________________
I just wanna dance..
[Vrh]
Korisnički profil Pošaljite privatnu poruku
pecina
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 19. 01. 2005. (14:15:23)
Postovi: (157)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
62 = 85 - 23
Lokacija: Happily traveling through space since 1986!

PostPostano: 12:30 uto, 12. 4. 2011    Naslov: Citirajte i odgovorite

[quote="glava"]Smijemo li mi tu koristiti malloc i free umjesto new i delete? Pitam jer bi mi trebala i funkcija realloc. Postoji li mozda neki nacin u c++-u za tu realokaciju?

hvala[/quote]

Odgovor je [b]NE[/b]. I to stvarno dramatično boldano.

Razlog je što malloc i free ne pozivaju odgovarajuće konstruktore i destruktore, new i delete to rade.

Da imate [code:1]Set<vector<int> > s;[/code:1], onda postoji šansa da negdje u unutarnjoj implementaciji ne pozoveš destruktor.

Možeš koristiti malloc/free akko si siguran/na da objekt koji uništavaš je POD odnosno da nema on niti njegovi članovi ništa sa destruktorom.

[size=9][color=#999999]Added after 14 minutes:[/color][/size]

[quote="tidus"][quote="Ally"][quote="Cobs"]
Ja bi to ovak sebi protumačio...
Ak imaš neki STL spremnik ( vector, set, multiset, list... ) - označit ćemo taj spremnik sa SPREMNIK, a klasa skup koji sam ja napravio za dz nek se zove Moj_Skup, onda bi konstruktor bio tipa:

Moj_Skup X( SPREMNIK );

tj. onaj skup koji sam ja napravio za zadacu bi trebao imati konstruktor koji će primiti taj spremnik i sve njegove elemente poslagati u skup ( Moj_Skup ). ( Al tak bi si ja protumačio, tak da ako si u nedoumici pošalji mail asistentu )[/quote]

Da, tak sam i ja to skužila ;)
Al (nadam se da ovo nebu ispalo preglupo pitanje) buni me to koji STL spremnik da ja "pretvaram" u svoj skup? Postoji dosta STL spremnika.. Nekak mi je najlogičnije da, ako koristim implementaciju preko vektora, napravim konstruktor za vector? Ili treba nešto (ak postoji) opčenito?
Hmm, mislim da mi je najbolje da pošaljem mail asistentu..[/quote]

Mozes za opceniti STL spremnik koristiti template<class tip>, samo onda kada zelis prijaviti iterator na opceniti STL spremnik moras pisati typename tip::iterator i;
Ne radi bez typename. Mozda si to znala, al meni je stvaralo probleme...
I bas sam glup nisam procitao da se nesmiju koristiti STL spremnici i poceo pisati tako da radim s vectorom :x[/quote]

Jedna implementacija je:
[code:1]#include <vector>
#include <list>
#include <iostream>

using namespace std;

template <typename T>
struct Set
{
template<typename U>
Set(const vector<U> &v)
{
for (size_t i = 0; i < v.size(); ++i)
cout << v[i] << " ";
cout << endl;
}
};

int main()
{
vector<int> vec1;
Set<float> S1(vec1);
return 0;
}[/code:1]

No očito je problem što se ne zna unaprijed koji je to spremnik u pitanju. Da bi se izbjeglo definiranje hrpe konstruktora za trenutne klase, postoji jednostavno rješenje koje koriste i sami STL kontejneri:[code:1]
#include <vector>
#include <list>
#include <iostream>

using namespace std;

template <typename T>
struct Set
{
template<typename _FwdIter>
Set(_FwdIter first, _FwdIter last)
{
while (first != last)
{
cout << v[i] << " ";
first++;
}
cout << endl;
}
};

int main()
{
vector<int> vec1;
Set<float> S1(vec1.begin(), vec1.end());

list<int> l1;
vector<int> vfroml(l1.begin(), l1.end());
return 0;
}[/code:1]

Nigdje u STL-u se ne prima cijeli kontejner nego uvijek par [pocetak, kraj>

[size=9][color=#999999]Added after 9 minutes:[/color][/size]

[quote="Ally"]A nitko još nema ideju za komplement?[/quote]

Ovo je relativno jednostavno. Dodaš bool varijablu u set:
[code:1]bool isComplement;[/code:1]

I sad elementi koje čuvaš u Set-u su ti oni elementi koji [i]nisu[/i] u Set-u pa moraš prilikom usporedbe paziti kako ćeš uspoređivat komplementarne skupove s običnim.
glava (napisa):
Smijemo li mi tu koristiti malloc i free umjesto new i delete? Pitam jer bi mi trebala i funkcija realloc. Postoji li mozda neki nacin u c++-u za tu realokaciju?

hvala


Odgovor je NE. I to stvarno dramatično boldano.

Razlog je što malloc i free ne pozivaju odgovarajuće konstruktore i destruktore, new i delete to rade.

Da imate
Kod:
Set<vector<int> > s;
, onda postoji šansa da negdje u unutarnjoj implementaciji ne pozoveš destruktor.

Možeš koristiti malloc/free akko si siguran/na da objekt koji uništavaš je POD odnosno da nema on niti njegovi članovi ništa sa destruktorom.

Added after 14 minutes:

tidus (napisa):
Ally (napisa):
Cobs (napisa):

Ja bi to ovak sebi protumačio...
Ak imaš neki STL spremnik ( vector, set, multiset, list... ) - označit ćemo taj spremnik sa SPREMNIK, a klasa skup koji sam ja napravio za dz nek se zove Moj_Skup, onda bi konstruktor bio tipa:

Moj_Skup X( SPREMNIK );

tj. onaj skup koji sam ja napravio za zadacu bi trebao imati konstruktor koji će primiti taj spremnik i sve njegove elemente poslagati u skup ( Moj_Skup ). ( Al tak bi si ja protumačio, tak da ako si u nedoumici pošalji mail asistentu )


Da, tak sam i ja to skužila Wink
Al (nadam se da ovo nebu ispalo preglupo pitanje) buni me to koji STL spremnik da ja "pretvaram" u svoj skup? Postoji dosta STL spremnika.. Nekak mi je najlogičnije da, ako koristim implementaciju preko vektora, napravim konstruktor za vector? Ili treba nešto (ak postoji) opčenito?
Hmm, mislim da mi je najbolje da pošaljem mail asistentu..


Mozes za opceniti STL spremnik koristiti template<class tip>, samo onda kada zelis prijaviti iterator na opceniti STL spremnik moras pisati typename tip::iterator i;
Ne radi bez typename. Mozda si to znala, al meni je stvaralo probleme...
I bas sam glup nisam procitao da se nesmiju koristiti STL spremnici i poceo pisati tako da radim s vectorom Mad


Jedna implementacija je:
Kod:
#include <vector>
#include <list>
#include <iostream>

using namespace std;

template <typename T>
struct Set
{
   template<typename U>
   Set(const vector<U> &v)
   {
      for (size_t i = 0; i < v.size(); ++i)
         cout << v[i] << " ";
      cout << endl;
   }
};

int main()
{
   vector<int> vec1;
   Set<float> S1(vec1);
   return 0;
}


No očito je problem što se ne zna unaprijed koji je to spremnik u pitanju. Da bi se izbjeglo definiranje hrpe konstruktora za trenutne klase, postoji jednostavno rješenje koje koriste i sami STL kontejneri:
Kod:

#include <vector>
#include <list>
#include <iostream>

using namespace std;

template <typename T>
struct Set
{
   template<typename _FwdIter>
   Set(_FwdIter first, _FwdIter last)
   {
      while (first != last)
      {
         cout << v[i] << " ";
         first++;
      }
      cout << endl;
   }
};

int main()
{
   vector<int> vec1;
   Set<float> S1(vec1.begin(), vec1.end());

   list<int> l1;
   vector<int> vfroml(l1.begin(), l1.end());
   return 0;
}


Nigdje u STL-u se ne prima cijeli kontejner nego uvijek par [pocetak, kraj>

Added after 9 minutes:

Ally (napisa):
A nitko još nema ideju za komplement?


Ovo je relativno jednostavno. Dodaš bool varijablu u set:
Kod:
bool isComplement;


I sad elementi koje čuvaš u Set-u su ti oni elementi koji nisu u Set-u pa moraš prilikom usporedbe paziti kako ćeš uspoređivat komplementarne skupove s običnim.



_________________
-- space available for rent --
[Vrh]
Korisnički profil Pošaljite privatnu poruku
Ally
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 15. 04. 2008. (19:57:23)
Postovi: (7F)16
Spol: žensko
Sarma = la pohva - posuda
17 = 19 - 2

PostPostano: 14:08 uto, 12. 4. 2011    Naslov: Citirajte i odgovorite

[quote="pecina"]
No očito je problem što se ne zna unaprijed koji je to spremnik u pitanju. Da bi se izbjeglo definiranje hrpe konstruktora za trenutne klase, postoji jednostavno rješenje koje koriste i sami STL kontejneri:[code:1]
#include <vector>
#include <list>
#include <iostream>

using namespace std;

template <typename T>
struct Set
{
template<typename _FwdIter>
Set(_FwdIter first, _FwdIter last)
{
while (first != last)
{
cout << v[i] << " ";
first++;
}
cout << endl;
}
};

int main()
{
vector<int> vec1;
Set<float> S1(vec1.begin(), vec1.end());

list<int> l1;
vector<int> vfroml(l1.begin(), l1.end());
return 0;
}[/code:1]
[/quote]

To ne radi.
Al ovak radi:
[code:1]template <typename T>
struct Set
{
template<typename _FwdIter>
Set(_FwdIter first, _FwdIter last)
{
int i;
while (first != last)
{
cout <<*first << " ";
first++;
}
cout << endl;
}
};
int main()
{
vector<int> vec1;
Set<float> S1(vec1.begin(), vec1.end());

list<int> l1;
vector<int> vfroml(l1.begin(), l1.end());
scanf("%%");
return 0;
}[/code:1]

Ali ni ovaj ni moj konstruktor ne rade ako npr želim list<vector<int>> pospremit u svoj skup, vec samo za "jednostavne" STL spremnike.
pecina (napisa):

No očito je problem što se ne zna unaprijed koji je to spremnik u pitanju. Da bi se izbjeglo definiranje hrpe konstruktora za trenutne klase, postoji jednostavno rješenje koje koriste i sami STL kontejneri:
Kod:

#include <vector>
#include <list>
#include <iostream>

using namespace std;

template <typename T>
struct Set
{
   template<typename _FwdIter>
   Set(_FwdIter first, _FwdIter last)
   {
      while (first != last)
      {
         cout << v[i] << " ";
         first++;
      }
      cout << endl;
   }
};

int main()
{
   vector<int> vec1;
   Set<float> S1(vec1.begin(), vec1.end());

   list<int> l1;
   vector<int> vfroml(l1.begin(), l1.end());
   return 0;
}



To ne radi.
Al ovak radi:
Kod:
template <typename T>
struct Set
{
   template<typename _FwdIter>
   Set(_FwdIter first, _FwdIter last)
   {
      int i;
      while (first != last)
      {
         cout <<*first << " ";
         first++;
      }
      cout << endl;
   }
};
int main()
{
   vector<int> vec1;
   Set<float> S1(vec1.begin(), vec1.end());

   list<int> l1;
   vector<int> vfroml(l1.begin(), l1.end());
   scanf("%%");
  return 0;
}


Ali ni ovaj ni moj konstruktor ne rade ako npr želim list<vector<int>> pospremit u svoj skup, vec samo za "jednostavne" STL spremnike.



_________________
I just wanna dance..
[Vrh]
Korisnički profil Pošaljite privatnu poruku
pecina
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 19. 01. 2005. (14:15:23)
Postovi: (157)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
62 = 85 - 23
Lokacija: Happily traveling through space since 1986!

PostPostano: 14:11 uto, 12. 4. 2011    Naslov: Citirajte i odgovorite

[quote="Ally"]
To ne radi.
Al ovak radi:[/quote]Istina :oops: Mali previd...

[quote]Ali ni ovaj ni moj konstruktor ne rade ako npr želim list<vector<int>> pospremit u svoj skup, vec samo za "jednostavne" STL spremnike.[/quote][/quote]

Kakva ti je definicija [b]Set[/b]-a u koji želiš pospremiti list<vector<int> >?
Ally (napisa):

To ne radi.
Al ovak radi:
Istina Embarassed Mali previd...

Citat:
Ali ni ovaj ni moj konstruktor ne rade ako npr želim list<vector<int>> pospremit u svoj skup, vec samo za "jednostavne" STL spremnike.
[/quote]

Kakva ti je definicija Set-a u koji želiš pospremiti list<vector<int> >?



_________________
-- space available for rent --
[Vrh]
Korisnički profil Pošaljite privatnu poruku
Ally
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 15. 04. 2008. (19:57:23)
Postovi: (7F)16
Spol: žensko
Sarma = la pohva - posuda
17 = 19 - 2

PostPostano: 14:23 uto, 12. 4. 2011    Naslov: Citirajte i odgovorite

[quote]Kakva ti je definicija Set-a u koji želiš pospremiti list<vector<int> >?[/quote]

Pa trebala bi biti Set<vector<int>>, kaj ne?
Citat:
Kakva ti je definicija Set-a u koji želiš pospremiti list<vector<int> >?


Pa trebala bi biti Set<vector<int>>, kaj ne?



_________________
I just wanna dance..
[Vrh]
Korisnički profil Pošaljite privatnu poruku
pecina
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 19. 01. 2005. (14:15:23)
Postovi: (157)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
62 = 85 - 23
Lokacija: Happily traveling through space since 1986!

PostPostano: 14:26 uto, 12. 4. 2011    Naslov: Citirajte i odgovorite

[quote="Ally"][quote]Kakva ti je definicija Set-a u koji želiš pospremiti list<vector<int> >?[/quote]

Pa trebala bi biti Set<vector<int>>, kaj ne?[/quote]Zašto bi onda bio problem? Ti operiraš s tipom [b]T[/b], bio on int ili vector<int> ili Set<vector<int> >, svejedno je. Treba raditi generički. Npr:
[code:1]template <typename T>
class Set
{
public:
template<typename _FwdIter>
Set(_FwdIter first, _FwdIter last)
{
while (first++ != last)
insert(*first);
}
private:
void insert(T const& t)
{
// ... logika
}
};

int main()
{
vector<int> vec1;
Set<int> S1(vec1.begin(), vec1.end());
return 0;
}
[/code:1]
Ally (napisa):
Citat:
Kakva ti je definicija Set-a u koji želiš pospremiti list<vector<int> >?


Pa trebala bi biti Set<vector<int>>, kaj ne?
Zašto bi onda bio problem? Ti operiraš s tipom T, bio on int ili vector<int> ili Set<vector<int> >, svejedno je. Treba raditi generički. Npr:
Kod:
template <typename T>
class Set
{
public:
   template<typename _FwdIter>
   Set(_FwdIter first, _FwdIter last)
   {
      while (first++ != last)
         insert(*first);
   }
private:
   void insert(T const& t)
   {
      // ... logika
   }
};

int main()
{
   vector<int> vec1;
   Set<int> S1(vec1.begin(), vec1.end());
   return 0;
}



_________________
-- space available for rent --
[Vrh]
Korisnički profil Pošaljite privatnu poruku
finalni
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 04. 08. 2007. (11:48:53)
Postovi: (10D)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
27 = 45 - 18
Lokacija: Bloodbuzz Zagreb

PostPostano: 17:04 uto, 12. 4. 2011    Naslov: Citirajte i odgovorite

[quote="lorozic"]Mene zanima dal smijemo pretpostaviti da set sadrzi objekte koji imaju definiran uredjaj.[/quote]

pitao sam asistenta pa mi je odgovorio da je cilj da tip T bude što općenitiji ali ako bez nečeg ne možemo, da slobodno ubacimo i komentiramo..
lorozic (napisa):
Mene zanima dal smijemo pretpostaviti da set sadrzi objekte koji imaju definiran uredjaj.


pitao sam asistenta pa mi je odgovorio da je cilj da tip T bude što općenitiji ali ako bez nečeg ne možemo, da slobodno ubacimo i komentiramo..



_________________
Nikola Adžaga
Građevinski fakultet, Sveučilište u Zagrebu
[Vrh]
Korisnički profil Pošaljite privatnu poruku
lorozic
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 08. 12. 2008. (17:11:14)
Postovi: (50)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
= 11 - 3

PostPostano: 21:18 uto, 12. 4. 2011    Naslov: Citirajte i odgovorite

[quote="finalni"][quote="lorozic"]Mene zanima dal smijemo pretpostaviti da set sadrzi objekte koji imaju definiran uredjaj.[/quote]

pitao sam asistenta pa mi je odgovorio da je cilj da tip T bude što općenitiji ali ako bez nečeg ne možemo, da slobodno ubacimo i komentiramo..[/quote]

Meni je rekel samo da smijemo o.O

Nego, npr kod operatora '==', dal smijem pretpostaviti da bude uvjek usporedba dva SET-a ili se mora moci koristiti i na template argumentu?
finalni (napisa):
lorozic (napisa):
Mene zanima dal smijemo pretpostaviti da set sadrzi objekte koji imaju definiran uredjaj.


pitao sam asistenta pa mi je odgovorio da je cilj da tip T bude što općenitiji ali ako bez nečeg ne možemo, da slobodno ubacimo i komentiramo..


Meni je rekel samo da smijemo o.O

Nego, npr kod operatora '==', dal smijem pretpostaviti da bude uvjek usporedba dva SET-a ili se mora moci koristiti i na template argumentu?



_________________
Listen to Reason...
http://www.youtube.com/watch?v=hQjrlsSGJrs
[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail
Prethodni postovi:   
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji diplomskih i starih studija -> Objektno programiranje (C++) Vremenska zona: GMT + 01:00.
Idite na Prethodno  1, 2, 3, 4, 5, 6, 7, 8, 9, 10  Sljedeće
Stranica 3 / 10.

 
Forum(o)Bir:  
Možete otvarati nove teme.
Možete odgovarati na postove.
Ne možete uređivati Vaše postove.
Ne možete izbrisati Vaše postove.
Ne možete glasovati u anketama.
You can attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2002 phpBB Group
Theme created by Vjacheslav Trushkin
HR (Cro) by Ančica Sečan