Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - cross reference (??)  per individuare 1stringa
Forum - C/C++ - cross reference (??) per individuare 1stringa

Avatar
:: sara :: (Normal User)
Newbie


Messaggi: 5
Iscritto: 18/07/2007

Segnala al moderatore
Postato alle 10:28
Sabato, 21/07/2007
ciao!
mi serve un po di aiuto!
ho un programma in c++ con varie richieste...
dopo aver manipolato un po array di caratteri mi chiede di sviluppare una funzionalità che sia in grado di individuare in un testo fornito tramite file il suddetto array di caratteri e che restituisca il numero della riga in cui si trova e il numero di volte che compare su ogni riga.

qualcuno aiutandomi (inutilmente) mi ha detto che devo costruire una tabella di cross reference e che devo partire da questo codice, ma non ho proprio capito come lavora e a cosa serve.


map<string,vector<int>>
xref ( istream& in, vector<string> find_words(const string&) = split)

/* la funzione find_words è un parametro che è fissato di default alla funzione
    split
    xref(cin);
    xref(cin,find_url);
*/

{
     string line;
     int line_number=0;
     map<string,vector<int>> ret;
     while (getline(in,line))
     {
           ++line_number;
           vector<string> words = find_words(line);
           for (vector<string>::const_iterator it = words.begin();
                 it != words.end(); ++it)
           ret[*it].push_back(line_number);
     }
     return ret;
}


grazie!!

PM Quote
Avatar
WARRIOR (Ex-Member)
Guru


Messaggi: 627
Iscritto: 30/03/2007

Segnala al moderatore
Postato alle 20:19
Sabato, 21/07/2007
Ciao, non ti sarebbe più semplice fare questa procedura? :

1)Apro il file in lettura;
2)Leggo la riga e le assegno un riferimento temporaneo;
3)La confronto con l'array, se compare la sequenza, aggiungo un'unità al contatore e riporto il riferimento;

Caso mai qui potresti utilizzare una mappa <chiave/valore> che indica il riferimento alla riga con il relativo contatore.

;);)

PM Quote