Statistik aus zufällig generierten Wörter ausgeben



  • Hey Leute!
    Ich habe eine Textdatei bestehend aus vielen Wörtern in einen Vektor eingelesen. Nun habe ich einen Zufallsgenerator, der diese Wörter zufällig ausgibt. Nun möchte ich eine Statistik die mir ausgibt wie oft ein jeweiliges Wort ausgegeben wurden ist. Am besten sollte die Statistik in Form eines Balkendiagrammes dargestellt werden, ungefähr so:

    wort1:*******(10mal aufgerufen)
    wort2:
    (3mal aufgerufen)
    wort3:*****(5mal aufgerufen)
    .
    .
    . etc.
    danke für eure Antworten!


  • Mod

    map<string, int> word_counter;
    ...
    // Wort wurde ausgegeben, danach
    word_counter[word]++;
    ...
    // Statistik
    for (auto const stats: word_counter)
       cout << stats.first << " wurde " << stats.second << " mal ausgegeben.\n";
    

    In C++17 könnte man auch

    for (const auto& [word, count]: word_counter)
        cout << word << " wurde " << count << " mal ausgegeben.\n"; 
    

    schreiben, was noch etwas lesbarer ist.



  • Danke ! Hat mir sehr geholfen



  • @SeppJ sagte in Statistik aus zufällig generierten Wörter ausgeben:

    In C++17 könnte man auch

    for (const auto& [word, count]: word_counter)
        cout << word << " wurde " << count << " mal ausgegeben.\n"; 
    

    schreiben, was noch etwas lesbarer ist.

    Krasser Scheiss, das kannte ich noch gar nicht 🙂


  • Mod

    @hustbaer sagte in Statistik aus zufällig generierten Wörter ausgeben:

    @SeppJ sagte in Statistik aus zufällig generierten Wörter ausgeben:

    In C++17 könnte man auch

    for (const auto& [word, count]: word_counter)
        cout << word << " wurde " << count << " mal ausgegeben.\n"; 
    

    schreiben, was noch etwas lesbarer ist.

    Krasser Scheiss, das kannte ich noch gar nicht 🙂

    Ich auch nicht, aber ich musste selber nachgucken, was der Range-Iterator einer Map ist und habe das dabei gefunden 🙂



  • Scheint auch hübsch generisch gemacht zu sein. Es geht auch bei Variablendefinitionen ausserhalb von Schleifen und auch mit selbstgebauten structs - also nicht bloss pair/tuple. Nice 🙂



  • Ihr habt das echt noch nicht gekannt? Stand glaub ich in jeder Zusammenfassung neuer Features drin.
    Ich muss aber sagen, ich hab das noch nie verwendet. Liegt vielleicht auch daran, dass ich noch nie dran gedacht habe, das zu verwenden, ist jetzt noch nicht so hängen geblieben.



  • @Mechanics Vermutlich hab ich es mal in einer solchen Zusammenfassung gelesen und mir gedacht "ah, nice", und es 5 Minuten später vergessen. In der Arbeit sind wir gerade noch auf C++14, bis wir C++17 verwenden können dauert es vermutlich noch (mindestens) ein paar Monate. Von daher ist auch die Motivation mir sowas zu merken nicht ganz so hoch wie sie es sonst wäre.


  • Mod

    @hustbaer sagte in Statistik aus zufällig generierten Wörter ausgeben:

    @Mechanics Vermutlich hab ich es mal in einer solchen Zusammenfassung gelesen und mir gedacht "ah, nice", und es 5 Minuten später vergessen.

    +1. Aber jetzt werde ich es nicht so schnell noch einmal vergessen.


Log in to reply