Vector auswerten



  • Hi,

    ich habe einen Vector (mit Klasse) in dem verschiedene Daten gespeichert sind. Jetzt will ich einen bestimmten Klassentypen A nachzählen (d.h. wie oft er gleich vorhanden ist) und die 2 Werte von A mit den meisten Duplikaten ausgeben.

    Wie soll ich das anstellen?
    Danke schon mal 👍



  • Mach mal ein Beispiel. Du kannst nur einen Typ in einem std::vector speichern, wie willst du da den häufigsten "Klassentyp" herausfinden?



  • mein Code sieht in etwa so aus:

    class a
    {
    private:
         a(){}
         a(int drei, string c, int lk, double B){ drei(drei), c(c), lk(lk), B(B) }
         int getB(){ return B; }
    public:
         int drei, lk;
         strin c;
         double B;
    };
    std::vector<a> quasi;
    ...
    quasi M;
    for(int i = 0; i < 100; i++)
    {
         M.push_back(a(3+i, i-2, "das ist ein test", i*i));
    }
    


  • So, und jetzt willst du die 2 am häufigsten auftretenden Wertekombinationen ausgeben oder was?



  • Ja, das vorherige war ein Beispiel wie ich das meine mit den Klassen und Vektoren. Bei mir im Code kommt dann mehrmals bei B ein bestimmter Wert raus. Alle Vektoreinträge die beim B diesen Wert haben (also die häufigsten) sollen ausgegeben werden und danach weiterverarbeitet werden. Das will ich beim zweithäufigsten Eintrag ebenfals machen.



  • Azure schrieb:

    mein Code sieht in etwa so aus:

    Viel mehr als vorher versteht man nicht – kein Wunder bei diesen Bezeichnern.

    Hast du kein Beispiel, an dem man deine Absichten erkennen kann? Denn dann wäre auch ein gezielter Rat möglich, anstelle wilder Spekulationen (wie z.B. dass du sowas suchen könntest).



  • Ich verstehe zwar immer noch nicht genau, was du meinst, aber versuche doch mal, zusätzlich eine std::map<a, unsigned int> mit den Elementen zu machen (dazu brauchst du aber noch einen Kleiner-Operator) und dann für jedes Element einen Zähler zu machen. Wenn das Element noch nicht vorhanden ist, setzt du den Zähler auf 1, ansonsten inkrementierst du ihn. Am Ende suchst du nach dem Eintrag mit den meisten/zweitmeisten Elementen.



  • ROFL... du hast es doch schon in Post 4 erkannt @wxSkip, wo ist da noch eine Frage offen? Er hat es mehr als deutlich beschrieben im ersten Post.



  • HighLigerBiMBam schrieb:

    ROFL... du hast es doch schon in Post 4 erkannt @wxSkip, wo ist da noch eine Frage offen? Er hat es mehr als deutlich beschrieben im ersten Post.

    Wo liegt dein Problem? Dass ich nicht gleich in Post 4 geantwortet habe?

    Und würdest du DAS als verständliche Erklärung deuten (mit Typ/Objekt-Verwechselung)? Hätte ja auch sein können, dass er std::vector noch nicht kapiert hat.
    [quote="Azure"]
    ich habe einen Vector (mit Klasse) in dem verschiedene Daten gespeichert sind. Jetzt will ich einen bestimmten Klassentypen A nachzählen (d.h. wie oft er gleich vorhanden ist)
    [quote]


Anmelden zum Antworten