Standard template library

di
Anonimizzato7105
il
1 risposte

Standard template library

Usando i contenitori set delle STL vorrei definire un albero binario di oggetti di uno specifico tipo di classe. Vorrei usare come ordering un strcmp eseguito su membri privati di tipo string contenute negli oggetti

1 Risposte

  • Re: Standard template library

    #include <iostream>
    #include <set>
    #include <string>


    using namespace std;

    class nodo{
    public:
    nodo(){};
    nodo(char const * c, char const *d): chiave(c), b(d){};
    string const get_chiave(){ return chiave;}
    string const get_b(){return b;}
    private:
    string chiave;
    string b;
    };

    bool operator < ( nodo nuovo, nodo testa){
    if((nuovo.get_chiave()).compare(testa.get_chiave())<0)
    return true;
    return false;
    }//riscrivo l'operatore < in modo che quando viene usato per ordinare gli oggetti di tipo class nodo nel momento dell'inserimento di un nuovo nodo la posizione del nuovo ogetto all'interno dell'albero viene decisa in funzione della chiave

    ostream& operator <<(ostream& outs, nodo oggetto){
    outs <<oggetto.get_b();
    return outs;
    }


    int main(){
    nodo primo("c", "1");
    nodo secondo("b","2");
    nodo terzo("g","3");

    set <nodo > albero;
    albero.insert(primo);
    albero.insert(secondo);
    albero.insert(terzo);
    set<nodo>::iterator p;

    for (p = albero.begin( ); p != albero.end( ); p++)
    cout<<*p<<" ";

    cout << endl;


    }
Devi accedere o registrarti per scrivere nel forum
1 risposte