list::unique()



  • Muss die Liste sortiert sein, damit es funktioniert? Meine Experimente deuten darauf hin. 🙄
    In meiner Dokumentation wird das allerdings nicht erwähnt.

    Hab jetzt in der MSDN was dazu gefunden, verzeiht meine Unfähigkeit. 🙂



  • Optimizer schrieb:

    Muss die Liste sortiert sein, damit es funktioniert? Meine Experimente deuten darauf hin. 🙄

    normale antwort: ja, muß sortiert sein.

    spaarhalterische antwort: nein, unique haut benachbarte gleiche weg, und macht auf unsortierten listen auch was eindeutiges. (nur will das keiner als ergebnis haben).

    deswegen wirste in der doku nicht finden, daß sortierung notwendig ist. aber das "benachbart" wird schon da stehen.



  • Ne, die Doku rockt nicht.

    The function unique() removes all duplicate elements from the list. If pr is specified, then it is used to determine uniqueness.

    Hat sich so bequem angehört... 😞
    Was ist denn eine performante Möglichkeit, doppelte Elemente (Elementtyp == Zeiger) zu verhindern? Bei einem vector jedesmal vor dem anhängen das Element erstmal zu suchen, ist ja auch nicht gerade elegant. 🙄

    Der Container muss eigentlich nur pushen, clearen und wachsen können sowie sortierbar sein.



  • Optimizer schrieb:

    Ne, die Doku rockt nicht.

    The function unique() removes all duplicate elements from the list. If pr is specified, then it is used to determine uniqueness.

    Hat sich so bequem angehört... 😞
    Was ist denn eine performante Möglichkeit, doppelte Elemente (Elementtyp == Zeiger) zu verhindern? Bei einem vector jedesmal vor dem anhängen das Element erstmal zu suchen, ist ja auch nicht gerade elegant. 🙄

    Der Container muss eigentlich nur pushen, clearen und wachsen können sowie sortierbar sein.

    ein performantes unique geschieht immer über sortieren mit O(n*log(n)) und dann raushauen der doppelten mit O(n).
    kannst ja mal probieren, ne set zu benutzen, die fügt einfach keine doppels ein, soweit ich mich erinnere und ist jederzeit sortiert.



  • Gut, der erste Vorschlag entspricht meiner aktuellen Implementierung. Das set werd ich dann Morgen mal ausprobieren. 🙂

    Danke so weit...


Anmelden zum Antworten