Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [C++] Problema con le STL

    Ragazzi ero certo di sapere usare queste librerie ma mi devo ricredere...

    Allore incominciamo dall'inizio:

    ho :

    codice:
     
     typedef list<int> lista_int;
     typedef vector<lista_int> vettore_liste;
    Questo è il mio main di prova, per inserire elementi nella singola lista in una particolare posizione del vettore (è un bucket alla fine :P)

    codice:
     
     int main()
     {
      vettore_liste *a = new vettore(10);
     
      //Ora per quello che so io
      // a[i] dovrebbe contenere il puntatore alla lista di interi giusto???
         
      //Quindi
      a[i]->push_front(1); // Dovrebbe andare!
     }
    Aiutatemi che la faccenda è seria!!

  2. #2
    E' impossibile che nessuno sappia rispondemi aiutatemi please!!!

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    74
    Cosi' va :
    codice:
    #include <iostream>
    #include <list>
    #include <vector>
    main()
    {
     typedef std::list<int> lista_int;
     typedef std::vector<lista_int> vettore_liste;
     int i=0;
     vettore_liste vl;
     vl[0].push_front(1);
    }

  4. #4
    vale lo stesso se al posto di "int" c metto una struttura?

    Ovviamente pushando una variabile adatta!

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    74
    Si,sono dei container. Puoi mettere qualsiasi cosa .
    Se dichiari un container di tipo base (int,char...) la sintassi e' quella.
    Se inserisci nel container un tipo tuo creato ad hoc puoi fare cosi' :
    codice:
    struct ST { int id ; std::string nome; };
    
    typedef std::vector<ST> Vs;
    Vs vs1;
    vs1[i].id = 1;
    vs1[i].nome = "uaz";
    ti consiglio di usare anche l'iteratore per scorrere il container :
    Vs::iterator it;
    Per esempio in un ciclo for :
    codice:
     
    for(it = vs1.begin() ; it!=vs1.end() ; it++)
    {
     std::cout<<"id"<<(it*).id<<std::endl;
     std::cout<<"Nome<<(it*).nome<<std::endl;
    }
    Come vedi sono molto pratici.
    Pero' fai attenzione alla condizione di uscita dal for!.
    Se vuoi inserire una condizione > o < , devi ridefinire un metodo del container per fargli capire cosa vuol dire < o > per il tuo tipo ad hoc.

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.