Doppelte Werte in einem Array finden



  • Wie gesagt habe ich ein herkömmliches C-Array (int) und will es nach duplikaten durchsuchen. Wie?

    Danke.

    :schland:



  • - über lösung nachdenken
    - umsetzen

    nützlich könnte sein:
    - sortier-funktion
    - assoziativer container
    - vector
    - andere algorithmen aus std::

    your move, sherlock



  • Finden oder löschen? Der bequemste Weg ist sicherlich std::sort, std::unique.



  • skullyan schrieb:

    Wie gesagt habe ich ein herkömmliches C-Array (int) und will es nach duplikaten durchsuchen. Wie?

    Danke.

    :schland:

    Wo ist Dein Problem? Du gehst jedes einzelne Element durch und prüftst, ob sich danach ein identischer Wert in dem Array befindet. Davor brauchst Du nicht schauen, denn die hast Du dann schon geprüft:

    for( size_t i=0; i<len; i++ )
       for( size_t j=i+1; j<len; j++ )
          ...
    

    mfg Martin



  • Du gehst jedes einzelne Element durch und prüftst, ob sich danach ein identischer Wert in dem Array befindet.

    Das läuft aber in n², da kann man also bei großen Arrays lange aufs Ergebnis warten.
    Wenn doppelte Einträge entfernt werden sollen ohne die Reihenfolge der restlichen Elemente zu verändern, bietet sich eine Lösung mit einem temporären std::set an.


Anmelden zum Antworten