Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    [c++] Ordinare una lista

    Salve a tutti.
    Ho una classe con il nome "calciatore" e ho un file in cui ho tutti i calciatori (inseriti attraverso un altra funzione con questa disposizione)

    nome cognome eta squadra gol ruolo

    Ora vorrei ordinare tramite una lista tutti i calciatori in ordine decrescente di gol (creare insomma una classifica capocannoniere)
    Questo è il codice che ho usato ma ho sicuramente sbagliato in qualche passaggio.

    Codice PHP:
    list<calciatorelista;
        
    calciatore kicker_temp;
        
    //inserisco nella list tutti gli elementi
        
    while(fread (&kicker_temp ,sizeof(calciatore),1,filepunt) && !feof(filepunt)) 
        {          
    lista.push_back(kicker_temp);
        }

        
    struct SortProcess : public std::binary_function <calciatorecalciatorebool> {
            
        
    bool operator()(calciatore &calciatore &b){
                        if(
    a.gol<b.gol){return true;}
                        return 
    false;
                };
    };
        
    lista.sort(SortProcess());

                        
    cout << "Nome";
                        
    cout << "\tCognome";
                        
    cout << "\tSquadra";
                        
    cout << "\tGol";
                        
    cout << "\n" << endl;
                        list<
    calciatore>::iterator it;
                        for(
    it lista.begin(); it lista.end(); it++){
                        
    cout << nome;
                        
    cout << "\t" << cognome;
                        
    cout << "\t" << squadra;
                        
    cout << "\t" << gol;
                        
    cout << endl;
        }

    Non badate alle parentesi graffe il codice è estrapolato da un file che contiene piu funzioni quindi posso anche aver sbagliato a copiarlo. Il problema non dipende da parentesi o punti e virgola ma sicuramente nella sintassi della list.

  2. #2

    Re: [c++] Ordinare una lista

    ok ma che problema hai? compilazione, linking o runtime?
    Cerca di ridurre ai minimi termini il problema, ed in modo riproducibile: magari già in questa fase potresti essere in grado di risolvere tu il tuo problema ed in ogni modo, nel caso non ci riuscissi, agevoleresti chi proverà ad aiutarti.
    ;-)

  3. #3
    Mi da 44 errori il compilatore se volete posto il codice completo:
    Questa è la classe calciatore derivata da individuo
    Codice PHP:
    #include <iostream>
    #include <string>
    #include "individuo_class.h"
    using namespace std;
    //creo la classe calciatore derivata dalla classe individuo
    class calciatore: public individuo {
    public:
        
    string squadra;
        
    int gol;
        
    string ruolo;
        
    //Costruttore di default
        
    calciatore() {
        
    nome "";
        
    cognome "";
        
    eta 0;
        
    squadra "";
        
    gol 0;
        
    ruolo "";
        }
        
    //costruttore
        
    calciatore(string namestring surnameint agestring teamint goalsstring role):individuo(name,surname,age) {
        
    squadra team;
        
    gol goals;
        
    ruolo role;
        }
        
    void capocannoniere();
    }; 
    Classe individuo
    Codice PHP:
    #ifndef individuo_class_h
    #define individuo_class_h
    #include <string>
    using namespace std;
    class 
    individuo {
        public:
            
    string nome;
            
    string cognome;
            
    int eta;
            
    //Costruttore di default
            
    individuo() {
            
    nome "";
            
    cognome "";
            
    eta 0;
            }
            
    //Costruttore
            
    individuo (string namestring surnameint age) {
            
    nome name;
            
    cognome surname;
            
    eta age;
            }
            
    //Distruttore
            
    ~individuo() {
            
    cout << "Libero la memoria occupata...";
            }
    };
    #endif 
    codice per la funzione capocannoniere
    Codice PHP:
    #include <iostream>
    #include <string>
    #include <list>
    #include "calciatore_class.h"
    using namespace std;

    void calciatore::capocannoniere() {
     
    //Puntatore al file
    FILE *filepunt;
    if((
    filepunt fopen("calciatori.dat","rb"))==NULL)
        { 
        
    //Il file non esiste non posso eliminare nessun calciatore
        //Restituisco un messaggio di errore
        
    cout << "\n  Il file 'calciatori.dat' e' inesistente.\nNon e' stata inserit nessun calciatore!";
    } else {
        list<
    calciatorelista;
        
    calciatore kicker_temp;
        
    //inserisco nella list tutti gli elementi
        
    while(fread (&kicker_temp ,sizeof(calciatore),1,filepunt) && !feof(filepunt)) 
        {          
    lista.push_back(kicker_temp);
        }

        
    struct SortProcess : public std::binary_function <calciatorecalciatorebool> {
            
        
    bool operator()(calciatore &calciatore &b){
                        if(
    a.gol<b.gol){return true;}
                        return 
    false;
                };
    };
        
    lista.sort(SortProcess());

                        
    cout << "Nome";
                        
    cout << "\tCognome";
                        
    cout << "\tSquadra";
                        
    cout << "\tGol";
                        
    cout << "\n" << endl;
                        list<
    calciatore>::iterator it;
                        for(
    it lista.begin(); it lista.end(); it++){
                        
    cout << nome;
                        
    cout << "\t" << cognome;
                        
    cout << "\t" << squadra;
                        
    cout << "\t" << gol;
                        
    cout << endl;
        }
    }


  4. #4
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Continui a non postare gli errori.
    A ogni modo direi di rivedere come si usano gli iteratori.
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  5. #5
    ma gli errori sono 44 se volete vi posto tutti i file del progetto in modo che possiate compilarli

  6. #6
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Gli errori (non warning, attento) che contano davvero di solito sono nei primi cinque.
    E insisto sugli iteratori.
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  7. #7
    so la differenza tra warning ed errori e ti dico che mi da 44 errori.
    Cosa c'è che non va sugli iteratori? Potresti dirlo?

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    225
    posta solo i primi 5 errori

  9. #9
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304

    Moderazione

    Io mi domando: se qualcuno ti chiede di postare gli errori, perchè continui a dire "sono 44" e non ne posti nemmeno uno?

    Postare gli errori non significa dire quanti sono, ma postare esattamente i messaggi di errore che il compilatore ti fornisce. Cosa deve fare la gente per poterti aiutare? Deve tirare ad indovinare quali sono questi errori?

    E' come andare dal medico e alla domanda "quali sintomi ha?" rispondere "ne ho tanti!".

    Posta esattamente i messaggi che il compilatore ti fornisce.

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  10. #10
    1>.\calciatore_class.cpp(249) : error C2784: 'bool std:perator <(const std::list<_Ty,_Ax> &,const std::list<_Ty,_Ax> &)': impossibile dedurre un argomento di modello per 'const std::list<_Ty,_Ax> &' da 'std::list<_Ty>::_Iterator<_Secure_validation>'
    1> with
    1> [
    1> _Ty=calciatore,
    1> _Secure_validation=true
    1> ]
    1> C:\Program Files\Microsoft Visual Studio 9.0\VC\include\list(1310): vedere la dichiarazione di 'std:perator <'
    1>.\calciatore_class.cpp(249) : error C2784: 'bool std:perator <(const std::list<_Ty,_Ax> &,const std::list<_Ty,_Ax> &)': impossibile dedurre un argomento di modello per 'const std::list<_Ty,_Ax> &' da 'std::list<_Ty>::_Iterator<_Secure_validation>'
    1> with
    1> [
    1> _Ty=calciatore,
    1> _Secure_validation=true
    1> ]
    1> C:\Program Files\Microsoft Visual Studio 9.0\VC\include\list(1310): vedere la dichiarazione di 'std:perator <'
    1>.\calciatore_class.cpp(249) : error C2784: 'bool std:perator <(const std::list<_Ty,_Ax> &,const std::list<_Ty,_Ax> &)': impossibile dedurre un argomento di modello per 'const std::list<_Ty,_Ax> &' da 'std::list<_Ty>::_Iterator<_Secure_validation>'
    1> with
    1> [
    1> _Ty=calciatore,
    1> _Secure_validation=true
    1> ]
    1> C:\Program Files\Microsoft Visual Studio 9.0\VC\include\list(1310): vedere la dichiarazione di 'std:perator <'
    1>.\calciatore_class.cpp(249) : error C2784: 'bool std:perator <(const std::list<_Ty,_Ax> &,const std::list<_Ty,_Ax> &)': impossibile dedurre un argomento di modello per 'const std::list<_Ty,_Ax> &' da 'std::list<_Ty>::_Iterator<_Secure_validation>'
    1> with
    1> [
    1> _Ty=calciatore,
    1> _Secure_validation=true
    1> ]
    1> C:\Program Files\Microsoft Visual Studio 9.0\VC\include\list(1310): vedere la dichiarazione di 'std:perator <'
    1>.\calciatore_class.cpp(249) : error C2784: 'bool std:perator <(const std::list<_Ty,_Ax> &,const std::list<_Ty,_Ax> &)': impossibile dedurre un argomento di modello per 'const std::list<_Ty,_Ax> &' da 'std::list<_Ty>::_Iterator<_Secure_validation>'
    1> with
    1> [
    1> _Ty=calciatore,
    1> _Secure_validation=true
    1> ]
    1> C:\Program Files\Microsoft Visual Studio 9.0\VC\include\list(1310): vedere la dichiarazione di 'std:perator <'
    1>.\calciatore_class.cpp(249) : error C2784: 'bool std:perator <(const std::list<_Ty,_Ax> &,const std::list<_Ty,_Ax> &)': impossibile dedurre un argomento di modello per 'const std::list<_Ty,_Ax> &' da 'std::list<_Ty>::_Iterator<_Secure_validation>'
    1> with
    1> [
    1> _Ty=calciatore,
    1> _Secure_validation=true
    1> ]
    1> C:\Program Files\Microsoft Visual Studio 9.0\VC\include\list(1310): vedere la dichiarazione di 'std:perator <'
    1>.\calciatore_class.cpp(249) : error C2784: 'bool std:perator <(const std::vector<_Ty,_Alloc> &,const std::vector<_Ty,_Alloc> &)': impossibile dedurre un argomento di modello per 'const std::vector<_Ty,_Alloc> &' da 'std::list<_Ty>::_Iterator<_Secure_validation>'
    1> with
    1> [
    1> _Ty=calciatore,
    1> _Secure_validation=true
    1> ]
    1> C:\Program Files\Microsoft Visual Studio 9.0\VC\include\vector(1322): vedere la dichiarazione di 'std:perator <'
    1>.\calciatore_class.cpp(249) : error C2784: 'bool std:perator <(const std::vector<_Ty,_Alloc> &,const std::vector<_Ty,_Alloc> &)': impossibile dedurre un argomento di modello per 'const std::vector<_Ty,_Alloc> &' da 'std::list<_Ty>::_Iterator<_Secure_validation>'
    1> with
    1> [
    1> _Ty=calciatore,
    1> _Secure_validation=true
    1> ]
    1> C:\Program Files\Microsoft Visual Studio 9.0\VC\include\vector(1322): vedere la dichiarazione di 'std:perator <'
    1>.\calciatore_class.cpp(249) : error C2784: 'bool std:perator <(const std::vector<_Ty,_Alloc> &,const std::vector<_Ty,_Alloc> &)': impossibile dedurre un argomento di modello per 'const std::vector<_Ty,_Alloc> &' da 'std::list<_Ty>::_Iterator<_Secure_validation>'
    1> with
    1> [
    1> _Ty=calciatore,
    1> _Secure_validation=true
    1> ]
    1> C:\Program Files\Microsoft Visual Studio 9.0\VC\include\vector(1322): vedere la dichiarazione di 'std:perator <'
    1>.\calciatore_class.cpp(249) : error C2784: 'bool std:perator <(const std::vector<_Ty,_Alloc> &,const std::vector<_Ty,_Alloc> &)': impossibile dedurre un argomento di modello per 'const std::vector<_Ty,_Alloc> &' da 'std::list<_Ty>::_Iterator<_Secure_validation>'
    1> with
    1> [
    1> _Ty=calciatore,
    1> _Secure_validation=true
    1> ]
    1> C:\Program Files\Microsoft Visual Studio 9.0\VC\include\vector(1322): vedere la dichiarazione di 'std:perator <'
    1>.\calciatore_class.cpp(249) : error C2784: 'bool std:perator <(const std::vector<_Ty,_Alloc> &,const std::vector<_Ty,_Alloc> &)': impossibile dedurre un argomento di modello per 'const std::vector<_Ty,_Alloc> &' da 'std::list<_Ty>::_Iterator<_Secure_validation>'
    1> with
    1> [
    1> _Ty=calciatore,
    1> _Secure_validation=true
    1> ]
    1> C:\Program Files\Microsoft Visual Studio 9.0\VC\include\vector(1322): vedere la dichiarazione di 'std:perator <'
    1>.\calciatore_class.cpp(249) : error C2784: 'bool std:perator <(const std::vector<_Ty,_Alloc> &,const std::vector<_Ty,_Alloc> &)': impossibile dedurre un argomento di modello per 'const std::vector<_Ty,_Alloc> &' da 'std::list<_Ty>::_Iterator<_Secure_validation>'
    1> with
    1> [
    1> _Ty=calciatore,
    1> _Secure_validation=true
    1> ]
    1> C:\Program Files\Microsoft Visual Studio 9.0\VC\include\vector(1322): vedere la dichiarazione di 'std:perator <'
    1>.\calciatore_class.cpp(249) : error C2784: 'bool std:perator <(const std::basic_string<_Elem,_Traits,_Alloc> &,const _Elem *)': impossibile dedurre un argomento di modello per 'const std::basic_string<_Elem,_Traits,_Alloc> &' da 'std::list<_Ty>::_Iterator<_Secure_validation>'
    1> with
    1> [
    1> _Ty=calciatore,
    1> _Secure_validation=true
    1> ]
    1> C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string(150): vedere la dichiarazione di 'std:perator <'
    1>.\calciatore_class.cpp(249) : error C2784: 'bool std:perator <(const std::basic_string<_Elem,_Traits,_Alloc> &,const _Elem *)': impossibile dedurre un argomento di modello per 'const std::basic_string<_Elem,_Traits,_Alloc> &' da 'std::list<_Ty>::_Iterator<_Secure_validation>'
    1> with
    1> [
    1> _Ty=calciatore,
    1> _Secure_validation=true
    1> ]
    1> C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string(150): vedere la dichiarazione di 'std:perator <'
    1>.\calciatore_class.cpp(249) : error C2784: 'bool std:perator <(const std::basic_string<_Elem,_Traits,_Alloc> &,const _Elem *)': impossibile dedurre un argomento di modello per 'const std::basic_string<_Elem,_Traits,_Alloc> &' da 'std::list<_Ty>::_Iterator<_Secure_validation>'
    1> with
    1> [
    1> _Ty=calciatore,
    1> _Secure_validation=true
    1> ]
    1> C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string(150): vedere la dichiarazione di 'std:perator <'
    1>.\calciatore_class.cpp(249) : error C2784: 'bool std:perator <(const std::basic_string<_Elem,_Traits,_Alloc> &,const _Elem *)': impossibile dedurre un argomento di modello per 'const std::basic_string<_Elem,_Traits,_Alloc> &' da 'std::list<_Ty>::_Iterator<_Secure_validation>'
    1> with
    1> [
    1> _Ty=calciatore,
    1> _Secure_validation=true
    1> ]
    1> C:\Program Files\Microsoft Visual Studio 9.0\VC\include\string(150): vedere la dichiarazione di 'std:perator <'
    1>.\calciatore_class.cpp(249) : error C2784: 'bool std:perator <(const std::basic_string<_Elem,_Traits,_Alloc> &,const _Elem *)': impossibile dedurre un argomento di modello per 'const std::basic_string<_Elem,_Traits,_Alloc> &' da 'std::list<_Ty>::_Iterator<_Secure_validation>'
    1> with
    1> [
    1> _Ty=calciatore,
    1> _Secure_validation=true
    1> ]

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.