Newsgroup: it.comp.lang.c++
Titolo: [Help] iterator questi sconosciuti!!

Cerco di essere chiaro nello spiegare il mio problema e come (per ora
malamente) ho cercato di risolverlo:
ho una coda (queue) di oggetti di tipo Studente (ho definito una classe
Studente importando il .h correttamente) e mi serve poter cancellare da
questa queue uno studente (la coda rappresenta una lista di studenti
prenotati ad un esame, e il caso in questione quello di uno studente che
vuole annullare la sua prenotazione). Pensavo che il modo + facile fosse
usando gli iteratori, ma mi rendo conto che non ho ben capito come si
usano...
Io ho provato ad usarli così ma ottengo un bel pò di errori:
void Prenotazioni::AnnullaPrenotazione(Studente s){//la classe Prenotazioni
è riportata + in basso
 listaPrenotati::iterator it1;
 it1=find(listaPrenotati.begin(),listaPrenotati.end(),s);
 listaPrenotati.erase(it1);
};
Errori riportati:
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
D:\Universita\Sistemi Informativi\Ingegneria del
Software\Homeworks\3\prenotazioni.cpp:
Error E2090 D:\Universita\Sistemi Informativi\Ingegneria del
Software\Homeworks\3\prenotazioni.cpp 36: Qualifier 'listaPrenotati' is not
a class or namespace name in function
Prenotazioni::AnnullaPrenotazione(Studente)
Error E2379 D:\Universita\Sistemi Informativi\Ingegneria del
Software\Homeworks\3\prenotazioni.cpp 36: Statement missing ; in function
Prenotazioni::AnnullaPrenotazione(Studente)
Error E2451 D:\Universita\Sistemi Informativi\Ingegneria del
Software\Homeworks\3\prenotazioni.cpp 37: Undefined symbol 'it1' in function
Prenotazioni::AnnullaPrenotazione(Studente)
Error E2316 D:\Universita\Sistemi Informativi\Ingegneria del
Software\Homeworks\3\prenotazioni.cpp 37: 'begin' is not a member of
'queue<Studente,deque<Studente,allocator<Studente> > >' in function
Prenotazioni::AnnullaPrenotazione(Studente)
Error E2316 D:\Universita\Sistemi Informativi\Ingegneria del
Software\Homeworks\3\prenotazioni.cpp 37: 'end' is not a member of
'queue<Studente,deque<Studente,allocator<Studente> > >' in function
Prenotazioni::AnnullaPrenotazione(Studente)
Error E2285 D:\Universita\Sistemi Informativi\Ingegneria del
Software\Homeworks\3\prenotazioni.cpp 37: Could not find a match for
'find<InputIterator,T>(undefined,undefined,Studente)' in function
Prenotazioni::AnnullaPrenotazione(Studente)
Error E2316 D:\Universita\Sistemi Informativi\Ingegneria del
Software\Homeworks\3\prenotazioni.cpp 38: 'erase' is not a member of
'queue<Studente,deque<Studente,allocator<Studente> > >' in function
Prenotazioni::AnnullaPrenotazione(Studente)
Warning W8057 D:\Universita\Sistemi Informativi\Ingegneria del
Software\Homeworks\3\prenotazioni.cpp 39: Parameter 's' is never used in
function Prenotazioni::AnnullaPrenotazione(Studente)
*** 7 errors in Compile ***
Ed ecco la classe "Prenotazioni"
class Prenotazioni{
 queue<Studente> listaPrenotati;//contiene tutti gli studenti che si sono
prenotati
 string data;
 string esame;
 string nomeProf;
 string cognomeProf;
 char aula;
 public:
  Prenotazioni();
Prenotazioni(string,string,string,string,char);//data,esame,nomeprof,cognome
prof,aula
  void Prenota(Studente);
  void AnnullaPrenotazione(Studente);//ricerca nella lista lo studente e
cancella la sua prenotazione
  vector<Studente> ChiudiPrenotazioni();//inserisce in un vettore gli
studenti prenotati
  string getData(){return data;};
  string getEsame() {return esame;};
  string getProf() {return cognomeProf;};
  char getAula() {return aula;};
  string toString();//inserisce in una stringa tutti i dati della
prenotazione
 };
Grazie a chi mi aiuterà, nella speranza di poter ricambiare al più presto
non appena avrò preso maggior confidenza con questo c++!!
Mauro

 a class or namespace name in function
Come ti dice il compilatore, l'errore e' in questa riga:
listaPrenotati::iterator it1;
prova a sostituire con:
queue<Studente>::iterator it1;
byez