[ hninel @ 23.04.2004. 14:09 ] @
Imam slijedeci problem:

Trebam da napisem template object tj. container koji ce moci da upisuje u fajl,
cita iz fajla, trazi i izlistava podatke po imenu, recimo cijeni, godistu i slicno (nije bitno).

Recimo da imam dvije klase:

Code:
 class korisnik
{
string ime;
int tip;

//....
public:

 //... razne korisnicke funkcije (login(), predstaviSe()...)
};

class stanovnik
{

string ime, prezime, mjRodj ;    // i druge podatke
double JMBG;
public:
 //... razne korisnicke funkcije (addData(), predstaviSe()...)

}; 


Potrebno mi je da ove podatke unosim u fajl, citam iz njega, pretrazujem...

Kontejner klasu sam otprilike sam zamislio ovako:

Code:
 template <typename elemType, typename findType>
class Container
{

   vector <elemType> elementi;

public:
vector <elemType> elementi readFromFile (string filename);
void writeToFile(string filename, vector <elemType> &elementi);

void findIn (const vector<elemType> &elementi, findType s);
// prikazuje pronadjene elemente
//findType je tip odnosno klasni pristupnik (class accessor) 
odredjenog clana (class member)

//... mozda jos neke f-cije koje mi sada ne trebaju
        
};


Rijesio sam pitanje implementacije upisa i citanja iz/u fajl,
ali me interesuje kako da postavim ovu pretragu
jer nekad ce mi trebati findType da bude string nekad int itd... s
to i jeste poenta (bitno).

Promisljao sam da sve prvo ucitam u mapu ili multimap-u iz vectora i
onda da izvrsim pretragu tako da mi je kljuc findType a vrijednost elemType
(kompletan objekat), ali sam nov sa STL-om a i sa generickim programiranjem...

Nadam se da sam dovoljno opisao problem.

Unaprijed hvala.

//--------------------------------------------------
[ filmil @ 04.07.2004. 13:45 ] @
To se obično radi prosleđivanjem recimo pointera na funkciju koja poredi elemente i vraća 1 ako je poređenje uspelo, odnosno 0 ako nije. Funkciju sam pišeš naknadno. U STL-u postoje predikati koji olakšavaju pisanje ovakvih funkcija.

f