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

    Array di puntatori e stringhe ... c++

    Ciao ragazzi , ho il seguente problemino devo ricevere delle stringhe , memorizzarle e di volta in volta vedere se la stringa è già stata inserita , se è stata inserita incremento il valore della stringa (l'occorrenza d'inserimento della stringa) ,se invece viene inserita per la prima volta la memorizzo e all'inserimento successivo verrà anch'essa utilizzata per il confronto .
    Il mio algoritmo : Inserisco la 1a stringa , viene memorizzata in un array , che adesso ha un valore nella prima cella , inserisco la 2a stringa , prima di memorizzarla devo vedere se è uguale alla precedente , se la stringa 1 e la stringa 2 hanno lo stesso valore devo incrementare di 1 il contatore della 1a stringa , altrimenti nella seconda cella memorizzo il valore della stringa questo devo farlo sempre fino a che ci saranno votanti. Ma penso e ripenso che c'è una connessione tra il n° dei votanti e il n° delle stringhe , insomma i 2 array avranno sempre la stessa dimensione alla fine , quindi forse dovrei implementare il tutto con un array di puntatori ? . Per farvi capire di più l'esercizio le stringhe stanno per i voti che i votanti danno ai candidati (Votanti e Candidati sono 2 classi distinte)

  2. #2
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Devi necessariamente usare un array o puoi usare altre strutture dati? In questo caso ci sta bene un albero (in cui ogni nodo contiene la stringa e il numero di voti ricevuti). Se scorrendo l'albero non trovi il nodo con quella stringa lo crei, altrimenti incrementi il contatore...
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Originariamente inviato da Alex'87
    Devi necessariamente usare un array o puoi usare altre strutture dati? In questo caso ci sta bene un albero (in cui ogni nodo contiene la stringa e il numero di voti ricevuti). Se scorrendo l'albero non trovi il nodo con quella stringa lo crei, altrimenti incrementi il contatore...

    Grazie per aver risposto *.* ! In pratica gli alberi non li ho studiati e non so come implementarli , il mio prof predilige l'utilizzo dei puntatori e per questo pensavo che dovessi creare una array di puntatori a Candidato e quando inserisco una stringa effettuare il confronto ed in caso l'incremento , ma non so come implementare questa mia idea , per questo se mi esplichi in che modo dovrei districarmi con l'albero provo a compilare questo esercizio che mi sta facendo impazzire . Non se sono stata abbastanza chiara la stringa rappresenta il voto espresso come preferenza per il candidato , se ad esempio ho una array di 10 Elettori avrò al max 10 voti . 1 inserimento allocazione nell'array di puntatori Candidato senza controllo , dalla seconda stringa devo vedere prima se la stringa è già stata inserita , se così fosse incremento , altrimenti inserisco la stringa nella cella ..

  4. #4

    Così potrebbe andare ?

    codice:
    Elettore.cpp
    .
    .
    .
    
    void Elettore::inserisci_voto()
    {  
        int conta=0;
       string votic ;
        
        cout<<"Inserisci il codice del candidato da te scelto . Trovi il codice relativo alla tua preferenza accanto al nome e cognome di ogni candidato";
            cin>>votic;
        getline(cin,votic);
        
       
          voti[0]= &votic;
        conta++;
      
        for (int i=1 ; i<10 ; i++)
        {
         
            if (voti[i]== voti[i-1]) {
                conta++;
            }else
            
            {  voti[i]=&votic;
                
        
        
        
                cout<<*voti[i];
            }


    codice:
    Elettore.h
    .
    .
    .
    
    
    void inserisci_voto();
     
     
        
       
        
    private: // qui vanno gli attributi
            long idn;
       string nome , cognome, cdf;
       
        
    string *voti [10]; // array di 10 elementi che sono ptr a Candidato

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.