| 
 | |||||||
| 
 | 
|  | 
|  | 
|  | Strumenti | 
|  06-06-2002, 11:11 | #1 | 
| Senior Member Iscritto dal: Nov 2000 
					Messaggi: 342
				 | 
				
				dubbio su mappe c++
			 
		Ciao ragazzi, sto facendo un programmino che deve gestire le iscrizioni agli esami da parte di studenti, il tutto in c++. avevo intenzione di gestire la cosa tramite una mappa avente per chiave l'esame (data, nome esame, docente, aula) e per valore una lista di studenti (matricola, nome e cognome), ora ho alcuni dubbi su questa possibile realizzazione. 1) posso mettere come chiave un oggetto di una classe che ho creato io, (in questo caso esame)? 2) per stampare la lista delle chiavi, esiste una funzione in particolare, oppure devo usare gli iteratori, per scandire tutta la mappa? Ciao Arpeda 
				__________________ Membro di HWU Scout Group || Quello che ieri era fantascienza oggi è realtà, quello che oggi è realtà domani sarà solo un ricordo ... Powered by Gentoo 1.4 on kernel 2.6.12.-gentoo-r4 | 
|   |   | 
|  06-06-2002, 13:08 | #2 | 
| Senior Member Iscritto dal: Apr 2000 Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29 
					Messaggi: 53971
				 | 
		Cos'è una mappa ? Non è meglio usare un db ?
		 | 
|   |   | 
|  06-06-2002, 13:29 | #3 | 
| Senior Member Iscritto dal: Nov 2000 
					Messaggi: 342
				 | 
		purtroppo non posso usare un DB. il programma serve solo come esercizio sulle classi e sulla stl. una mappa è un tipo di contenitore astratto, e viene definito nella Standard Template Lybrary. se non vuoi chiamarla mappa chiamala dizionario. map <key, value> pippo; Ciao Arpeda 
				__________________ Membro di HWU Scout Group || Quello che ieri era fantascienza oggi è realtà, quello che oggi è realtà domani sarà solo un ricordo ... Powered by Gentoo 1.4 on kernel 2.6.12.-gentoo-r4 | 
|   |   | 
|  06-06-2002, 13:42 | #4 | 
| Senior Member Iscritto dal: Apr 2000 Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29 
					Messaggi: 53971
				 | 
		Ah...ok... Probabilmente è una specie di Hash table... Non l'ho mai usata... In teoria puoi mettere anche una classe creata da te... Comunque credo che la chiave debba avere alcune caratteristiche...ad esempio suppongo che debba avere almeno qualche operatore di confronto... Poi magari funziona con una Hash table che si basa sul contenuto in memoria della chiave... Boh...non so che dirti...fai qualche prova... | 
|   |   | 
|  06-06-2002, 18:59 | #5 | ||
| Bannato Iscritto dal: Jul 2000 Città: Malo (VI) 
					Messaggi: 1000
				 | 
				
				Re: dubbio su mappe c++
			 Quote: 
 In alternativa puoi passare fare una mappa che usi come chiave puntatori agli oggetti, la mappa userà come valore di confronto il valore del puntatore ( anche se ovviamente il significato della mappa cambia un po' ). Ad esempio 1 - Con operator < Codice: class Esame
{
   /* ... */
   bool operator < ( const Esame& ) const;
};
map<Esame, vector<Studenti> > x;
// ...Codice: class Esame
{
   /* ... */
};
struct EsameCmp
{
  bool operator()( const Esame& x , const Esame& y )
};
map<Esame, vector<Studente>, EsameCmp > x;
/* ... */Codice: 
class Esame
{
   /* ... */
};
map< Esame* , vector<Studenti>* > x;Quote: 
 | ||
|   |   | 
|  06-06-2002, 19:54 | #6 | 
| Senior Member Iscritto dal: Nov 2000 
					Messaggi: 342
				 | 
		grazie proverò ciao Arpeda 
				__________________ Membro di HWU Scout Group || Quello che ieri era fantascienza oggi è realtà, quello che oggi è realtà domani sarà solo un ricordo ... Powered by Gentoo 1.4 on kernel 2.6.12.-gentoo-r4 | 
|   |   | 
|  06-06-2002, 21:08 | #7 | 
| Bannato Iscritto dal: Jul 2000 Città: Malo (VI) 
					Messaggi: 1000
				 | 
		Un'ultima cosa : se usi i puntatori  ma vuoi comunque confrontare il contenuto dovrai nuovamente usare un oggetto di confronto, cioe' map<Esame,...,EsameCmp>, dove ora pero' EsameCmp prende come argomenti puntatori agli oggetti.
		 | 
|   |   | 
|   | 
| Strumenti | |
| 
 | 
 | 
Tutti gli orari sono GMT +1. Ora sono le: 08:04.









 
		 
		 
		 
		








 
  
 



 
                        
                        










