[ motronic16A @ 31.03.2011. 15:52 ] @
Zadatak glasi:

Citat:
Napišite generičku funkciju koja ima dva parametra “v” i “v1”. Oba parametra su vektori
proizvoljnog ali istog tipa elemenata (tj. tip elemenata u oba vektora je isti) za koje se
pretpostavlja da se mogu porediti. Funkcija treba da iz vektora “v” odstrani sve elemente koji
se ne nalaze u vektoru “v1”, zadržavajući ostale elemente u istom poretku kakvi su bili prije
odstranjivanja. Funkcija ne vraća nikakvu vrijednost, već samo utiče na elemente parametra
“v” (koji pri tome, naravno, može promijeniti svoju veličinu). Na primjer, ako prije poziva
funkcije vektor “v” sadrži redom elemente 3, 8, 5, 6, 1, 4, 9, 7, 2, 2, 6, 4, 9, 1, 4, 8, 3, 6 i 5, a
vektor “v1” elemente 4, 0, 3, 4 i 2, nakon poziva funkcije vektor “v” treba da sadrži redom
elemente 8, 5, 6, 1, 9, 7, 6, 9, 1, 8, 6 i 5. Pri tome, funkcija ne smije u svom radu kreirati i
koristiti nikakve druge vektore ili nizove osim samih parametara “v” i “v1” (tj. nije
dozvoljeno koristiti nikakve pomoćne vektore). Napisanu funkciju demonstrirajte u testnom
programu koji će iz spiska riječi koje se unose sa tastature (te riječi treba čuvati u vektoru čiji
su elementi stringovi) odstraniti sve riječi sa drugog spiska riječi koji se također unosi putem
tastature i ispisati sve riječi iz prvog spiska nakon obavljenog odstranjivanja.


kako da postignem da deklarišem vektore proizvoljnog tipa?



[ milanche @ 31.03.2011. 15:57 ] @
Pogledaj template (valjda se na srpskom zovu 'sabloni' ?).
http://www.cplusplus.com/doc/tutorial/templates/

Vektor je deo STL (Standard Template Library)
http://www.cplusplus.com/reference/stl/vector/
[ nekoNiko @ 31.03.2011. 23:52 ] @
Citat:
motronic16A: Zadatak glasi:



kako da postignem da deklarišem vektore proizvoljnog tipa?

Pise ti u predavanjima iz TP-a :)
[ Mihajlo Cvetanović @ 01.04.2011. 09:33 ] @
Milanchetov link za template je dobar, ali ne objašnjava ono što OP-u treba. Template funkcija se u opštem slučaju definiše ovako

Code:
template<{X}> Y funkcija({Z})
{
   ...
}


Ovde je {X} skup template parametara (tipovi koji učestvuju u generisanju funkcije). Y je tip povratne vrednosti funkcije, {Z} je skup parametara funkcije. Ovde je bitno naglasiti da tipovi za Y i Z ne moraju da budu direktni elementi iz X, nego mogu da budu i izvedeni iz X. Ako u X imamo "typename v1" onda u Z možemo da imamo i "std::vector<v1>".
[ milanche @ 01.04.2011. 13:26 ] @
Citat:
Mihajlo Cvetanović: Milanchetov link za template je dobar, ali ne objašnjava ono što OP-u treba.


...najvise zato sto mi je delovalo da mu je vise potrebnija sira orjentacija, manje nego detalji koje vrlo verovatno moze da razresi i sam.