Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    [c++] Come prendere elementi da una list?

    Ho questo cod.

    codice:
    cout << "\n";cout << "mylist UNIQUE contains:";
      for (list<int>::iterator it=mylist.begin(); it!=mylist.end(); ++it)
      cout << " " << *it;
      string numero3;
      string passaggio =*it;
      numero3 = intToString(passaggio);
      combinazioneintera+=numero3;
      combinazioneintera+=","; 
      
      cout << endl;
      cin.get();
    Avrei necessità di prendere... gli elementi univoci della lista e metterli in una stringa separati da virgola...

    Solo che con i passaggi sopra non ottengo molto...
    Anzi solo questo errore per me alquanto indecifrabile... VVoVe:

    139 C:\tom\exp15.cpp name lookup of `it' changed for new ISO `for' scoping

    Grazie a chi mi dice come fare per prendere... gli elementi da una list e trasformarli in stringa...



  2. #2
    Sicuramente un for non ti basta (se la lista non contiene elementi univoci). Ne servono due, uno ti serve per scorrere l'elemento, l'altro scorre di nuovo tutta la lista e vede se quell'elemento è presente una sola volta. Se lo è ok, e lo metti dentro, altrimenti no.

    L'errore è dovuto al fatto che lo scope dell'iteratore è relativo al for, mentre tu lo usi fuori.
    Codice PHP:
        int c;
        
    string s="";

        for (list<
    int>::iterator it=mylist.begin(); it!=mylist.end(); it++) {
            
    c=0;
            for(list<
    int>::iterator et=mylist.begin(); et!=mylist.end(); et++)
                if(*
    et == *it)
                    
    c++;

            if(
    == 1)
                
    += intToString(*it) + ",";
         }
         
    cout<<s.substr(0s.length()-1)<<endl
    Se la lista contiene già elementi univoci allora basta un for
    Codice PHP:
    string s="";

        for (list<
    int>::iterator it=mylist.begin(); it!=mylist.end(); it++)
            
    += intToString(*it) + ",";

        
    cout<<s.substr(0s.length()-1)<<endl

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 © 2025 vBulletin Solutions, Inc. All rights reserved.