ciao a tutti, ho implementato la struttura dati insieme rappresentandolo con una lista di puntatori. dopo di chè ho fatto un test per provare se i metodi sono corretti però, dato che la libreria della lista è situata in un'altra cartella, mi viene visualizzato un errore di compilazione. in pratica non viene inserita la libreria nel codice. posto i codici.
insiemel.h
testinsiemel.cppcodice:#ifndef insiemel_h #define insiemel_h #include<iostream> #include<stdlib.h> #include "listap.h" using namespace std; template<class tipoelem> class insiemel { public: insiemel(); void creainsieme(); bool insiemevuoto(); bool appartiene(tipoelem); void inserisci(tipoelem); void cancella(tipoelem); void unione(insiemel, insiemel); void intersezione(insiemel, insiemel); void differenza(insiemel, insiemel); tipoelem getelem(); private: listap<tipoelem> elementi; }; #endif template<class tipoelem> tipoelem insiemel<tipoelem>::getelem() { return(elementi.leggilista(elementi.primolista()); } template<class tipoelem> insiemel<tipoelem>::insiemel() { this->creainsieme(); } template<class tipoelem> void insiemel<tipoelem>::creainsieme() { elementi = NULL; } template<class tipoelem> bool insiemel<tipoelem>::insiemevuoto() { return(elementi.listavuota()); } template<class tipoelem> bool insiemel<tipoelem>::appartiene(tipoelem elem) { bool trovato = false; listap<tipoelem>::posizione p = elementi.primolista(); while((p != elementi.preclista(elementi.primolista())) && !trovato) { if(elementi.leggilista(p) == elem) trovato = true; else p = elementi.suclista(p); } return trovato; } template<class tipoelem>> void insiemel<tipoelem>::inserisci(tipoelem elem) { if(!this->appartiene(elem)) this->inserisci(elem); } template<class tipoelem> void insiemel<tipoelem>::cancella(tipoelem) { bool trovato = false; listap<tipoelem>::posizione p = elementi.primolista(); while((p != elementi.preclista(elementi.primolista())) && !trovato) { if(elementi.leggilista(p) == elem) { trovato = true; elementi.canclista(p); } else p = elementi.suclista(p); } } template<class tipoelem> void insiemel<tipoelem>::unione(insiemel<tipoelem> A, insiemel<tipoelem> B) { while(!A.insiemevuoto()) { this->inserisci(A.getelem()); A.cancella(A.getelem()); } while(!B.insiemevuoto()) { this->inserisci(B.getelem()); B.cancella(B.getelem()); } } template<class tipoelem> void insiemel<tipoelem>::intersezione(insiemel<tipoelem> A, insiemel<tipoelem> B) { while(!A.insiemevuoto()) { if(B.appartiene(A.getelem()) this->inserisci(A.getelem()); A.cancella(A.getelem()); } } template<class tipoelem> void insiemel<tipoelem>::differenza(insiemel<tipoelem> A, insiemel<tipoelem> B) { while(!A.insiemevuoto()) { if(!B.appartiene(A.getelem())) this->inserisci(A.getelem()); A.cancella(); } }
premesso che ho fatto la procedura dell'inserimento della libreria della lista, l'errore che mi viene visualizzato è il seguente:codice:#include "insiemel.h" #include<iostream> #include<stdlib.h> using namespace std; int main() { insiemel<int> set; system("pause"); return 0; }
6 C:\Dev-Cpp\Insieme\insiemel.h listap.h: No such file or directory.
cosa c'è che non va?

Rispondi quotando