Intrusive vs non-intrusive



  • SeppJ schrieb:

    Bashar schrieb:

    Und wie findest du in dem Vektor das jeweils richtige Flag?

    SeppJ schrieb:

    ich nehme mal an, die Objekte sind irgendwie identifizierbar mit einer Nummer, Speicheradresse, o.Ä.

    Falls doch nicht, dann eben der Hashtable. Aber bitte kein Set in einer kritischen Schleife füllen.

    OK, angenommen, die Objekte sind durch ihre Adresse identifizierbar. Wie gehts weiter? Die Adresse als Index zu nehmen ist ja wohl ein Witz.



  • dot schrieb:

    Man könnte auch einfach alle sichtbaren Zellen durchlaufen, alle Objekte davon in einen vector schubsen und dann die Duplikate entfernen.

    Ehrlich gesagt denk ich, dass das nicht nur sehr einfach sondern auch nicht besonders ineffizient wäre...


  • Mod

    Bashar schrieb:

    OK, angenommen, die Objekte sind durch ihre Adresse identifizierbar. Wie gehts weiter? Die Adresse als Index zu nehmen ist ja wohl ein Witz.

    Daraus kann man dann einen Index ausrechnen, wenn die Objekte hintereinander im Speicher liegen.

    Und zur Not hat man immer noch die Möglichkeit der Markierung, wie im Originalbeitrag. Wenn die Objekte sowieso nicht hintereinander im Speicher liegen, hat man nämlich ohnehin keine Lokalität, dann ist es egal, wenn die Objekte etwas Ballast haben.



  • SeppJ schrieb:

    Bashar schrieb:

    OK, angenommen, die Objekte sind durch ihre Adresse identifizierbar. Wie gehts weiter? Die Adresse als Index zu nehmen ist ja wohl ein Witz.

    Daraus kann man dann einen Index ausrechnen, wenn die Objekte hintereinander im Speicher liegen.

    Anders gesagt, du gehst von parallelen Vektoren aus, einen Vektor mit den Objekten und einen mit den Flags. Kann man machen, wenn die Objekte so vorliegen. 👍

    Und zur Not hat man immer noch die Möglichkeit der Markierung, wie im Originalbeitrag.

    Ja natürlich, es gibt die beiden im Originalbeitrag angesprochenen Methoden. Du hast aber eine dritte vorgeschlagen, und nur über die spreche ich.


Anmelden zum Antworten