|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#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 |
|
|
|
|
|
#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 ?
|
|
|
|
|
|
#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 |
|
|
|
|
|
#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... |
|
|
|
|
|
#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:
|
||
|
|
|
|
|
#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 |
|
|
|
|
|
#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: 23:39.



















