Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    211

    C++ struttura dati insieme, help

    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
    codice:
    #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();
       }
    }
    testinsiemel.cpp
    codice:
    #include "insiemel.h"
    #include<iostream>
    #include<stdlib.h>
    
    using namespace std;
    
    int main()
    {
       insiemel<int> set;
       
       system("pause");
       return 0;
    }
    premesso che ho fatto la procedura dell'inserimento della libreria della lista, l'errore che mi viene visualizzato è il seguente:

    6 C:\Dev-Cpp\Insieme\insiemel.h listap.h: No such file or directory.

    cosa c'è che non va?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Esattamente il problema che indica

    "No such file or directory"

    e si riferisce al file

    listap.h

    Probabilmente quel file non è nella cartella del progetto.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    Prova:
    codice:
    C:\Dev-Cpp\Insieme\insiemel.h C:\Dev-Cpp\Insieme\listap.h

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.