matteog (Normal User)
Pro
Messaggi: 149
Iscritto: 10/04/2009
|
Ciao a tutti,ho riscontrato un problemino nella programmazione con i file in c++,in pratica devo scrivere un programma che preso un file stampa le occorrenze di tutte le parole che lo compongono e posso usare la map.Mi è venuto in mente di prendere il file e copiarlo in una stringa così da far si che quando richiamerò la ricerca delle occorrenze il ciclosarà più veloce.Sapete consigliarmi come eseguire quest'ultimo passaggio?non sò come fare a stampare tt le occorrenze delle parole nella stringa aiutatemi vi prego!
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6402
Iscritto: 03/01/2010
|
Perchè inserirlo in una stringa?
Mentre lo leggi dal file, controlli la parola e tieni conto delle occorrenze.
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
matteog (Normal User)
Pro
Messaggi: 149
Iscritto: 10/04/2009
|
ma come si fà questo passaggio?e non è più veloce sulla ram piuttosto che su massa?
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6402
Iscritto: 03/01/2010
|
Il file lo devi comunque leggere una volta ...
Non sai come leggere un file di testo in C++ ?
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
matteog (Normal User)
Pro
Messaggi: 149
Iscritto: 10/04/2009
|
si leggere lo sò leggere ma nn sò come contare quante volet si ripete ogni parola al suo interno
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6402
Iscritto: 03/01/2010
|
Hai detto che puoi usare le map.
Usane una tipo
map<string, int> parole;
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
TheKaneB (Member)
Guru^2
Messaggi: 1792
Iscritto: 26/06/2009
|
oppure usa una multimap e ti fai restituire il numero di occorrenze di ogni parola usando il metodo "count", passandogli come parametro la key (cioè la parola stessa). Potrei farti un esempio di codice ma è così semplice che praticamente sarebbe come fare i compiti al posto tuo.
qui comunque c'è un esempio abbastanza chiaro:
http://www.cplusplus.com/reference/stl/multimap/count/
Ultima modifica effettuata da TheKaneB il 12/01/2010 alle 23:56 |
|
nessuno (Normal User)
Guru^2
Messaggi: 6402
Iscritto: 03/01/2010
|
Perchè una multimap ? In modo simile a quel sorgente, con una map
Codice sorgente - presumibilmente C++ |
#include <iostream> #include <fstream> #include <string> #include <map> using namespace std; int main() { string parola; map<string, int> parole; fstream file("file.txt", ios::in); while(file >> parola) parole[parola]++; file.close(); map<string, int>::iterator prossparola; for(prossparola=parole.begin(); prossparola!=parole.end(); prossparola++) cout << (*prossparola).first << " => " << (*prossparola).second << endl; return 0; }
|
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
TheKaneB (Member)
Guru^2
Messaggi: 1792
Iscritto: 26/06/2009
|
Postato originariamente da nessuno:
Perchè una multimap ? In modo simile a quel sorgente, con una map
|
Io lo so come usare una map, ci mancherebbe!
Ho soltanto proposto una soluzione in più che potrebbe rivelarsi utile per "scoprire" le multimap. Molti programmatori C++ che conosco si ricordano solo "per sentito dire" dell'esistenza di queste strutture, quindi mi sembra istruttivo iniziare fin da subito a conoscerle. Per questo esempio ovviamente è banale l'uso di una semplice map, ma se in futuro dovesse sviluppare qualcosa in cui sarà importante mantenere reference distinti per ciascuna istanza di oggetti identici (in questo caso, stringhe con uguale contenuto), allora probabilmente si ricorderà che un tale su un forum gli aveva fatto scoprire le multimap Ultima modifica effettuata da TheKaneB il 13/01/2010 alle 10:29 |
|