Wie umsetzen?



  • Hallo,
    ich lese aus einer Datei folgende Werte aus:
    Datum Zahl Text

    Nun möchte ich das gerne in einer Statistik haben. Also wie oft kam bei Zahl Text vor... Wie löse ich das am Besten? Welche Datenstruktur nehme ich?

    Beispielaufbau:

    10.10.01,15:10#100:Hallo
    10.10.01,15:10#200:Hallo1
    10.10.01,15:10#300:Hallo
    
    10.10.01,15:25#100:Hallo2
    10.10.01,15:25#200:Hallo1
    10.10.01,15:25#300:Hallo
    

    Ausgabe:

    Zahl 100:
    Einträge 2
    "Hallo" 1( 50% )
    "Hallo2" 1( 50% )
    
    Zahl 200:
    Einträge 2
    "Hallo1" 2( 100% )
    
    Zahl 300:
    Einträge 2
    "Hallo" 2( 100% )
    

    Das würde ich gerne umsetzen! Eine andere Frage: Sollte ich das Datum auch noch in die Statistik nehmen? Wenn ja wie baue ich dann meine Statistik auf?

    Wichtig ist, dass die Einträge unterschiedlich sein können! Es könnten also auch nur 2 oder auch 4 sein. Das ist nicht festgelegt also Variabel.

    Ich habe an etwas wie: Vector und Map gedacht. Aber ich weiß nicht wie ichs genau umsetzen soll.

    Bin über Hilfe sehr dankbar!!! 👍



  • Nja wie würdest du denn manuel vorgehen?

    aja ...

    std::map<unsigned int, std::vector<std::string>> items;
    

    könntest de versuchen ... mir fällt sonnst nix ein 😃



  • am besten ist beim umstezen, wenn der martin nah vorne kommt und die inge in die 2te reihe

    mach halt ne map mit maps

    key | value
    -------------------------------------------
    100 | key:hallo value:1 (Die Anzahl)
        | key:hallo2 value:1 
        |
    200 | key:hallo1 value:2
    


  • Könntest du noch zeigen, wie ich diese deklariere und fülle?
    Außerdem ist es doch nicht Möglich mehre EInträge under dem gleichen Key zu haben, oder?



  • Hilfeeee schrieb:

    Außerdem ist es doch nicht Möglich mehre EInträge under dem gleichen Key zu haben, oder?

    key 100 hat als value eine map

    typedef std::map<std::string, int> INNERMAP;
    typedef std::map<int, INNERMAP> MAP;
    

    Schauen, obs in der MAP schon einen eintrag für die zahl gibt, wenn ja in der INNERMAP text einfügen oder anzahl erhöhen, wenn nein, neue map einfügen und in diese den text einfügen.


Anmelden zum Antworten