Dictionary lesen, Frequenz der woerter speichern <map>



  • Hallo zusammen,

    Ich hab ein dictionary.txt was voll mit woertern ist. Ich muss jetzt jedes wort einlesen und in nem container speichern. Wenn ein Wort mehrmals vorkommt muss ich die Frequenz updaten. Mein map container sieht ca so aus:

    map <string, int> frequency
    

    Wie les ich jetzt die Woerter ein und gleiche die mit meiner bestehenden map ab?

    Daniel



  • Einlesen kannst du sie über die (hoffentlich) bekannten Funktionen eines fstream (in dem Fall würde sogar op>> gehen - du mußt nur eventuell vorhandene Satzzeichen rausschmeißen). Die map updaten würde ich mit einem "frequency[wort]++;"



  • Und wie lese ich dann daten in eine map ein? Also wie waere die syntax?



  • In deinem Fall müsste key vom Typ string und value vom Typ integer sein:

    frequency[key] = value;
    


  • Wenn es nur einzelne Wörter sind, ohne sonstige Zeichen und alle mit Leerzeichen getrennt sind, ist es sehr einfach:

    string wort;
    ifstream in( "dict.txt" );
    while( in >> wort )
       ++frequency[ wort ];
    


  • DANKE!!

    Das hilft mir auf jedenfall schon mal um einiges weiter! Jetzt muss ich das ganze naemlich in nen binaeren tree packen, ein tree bestehend aus maps. Hab sicherlich spaeter noch mal fragen.


Log in to reply