Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Wollte eigentlich nur mal wissen was du eigentlich willst und habe mal "STL Delphi" in Google eingeworfen. Und schau mal einer an. Könnte es rein zufällig sein, dass du so etwas suchst?
In den Units Classes und Cntrls sind viele solcher Standard Klassen. Die TObjectList gibt z.B. die Objekte automatisch beim Löschen aus der Liste frei. Generische Listen gibt es leider nicht in der Form wie in C++.
Das ist alles in der VCL enthalten. Die Liste (TList) ist z.B. meiner meinung nach sogar bequemer als die in der STL.
Nöööö TList ist schrott, weil die nur Zeiger frisst. Bräuchte jetzt z.B. ne Liste von booleans. Da dürfte ich ja anfangen alle mit new anzulegen, um diese Liste nutzen zu können.
Und wie gesagt, Liste war nur ein Beispiel
@lossy: den Link für ich mir mal zu Gemüte, sieht auf den ersten BLick ganz gut aus.[/url]
edit. tja wer zu spät kommt "Page Not Found
The page you have requested does not exist on this server" kommt wenn man den Source will
_________________ __________
"C++ is the best language for garbage collection principally because it creates less garbage." Bjarne Stroustrup
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Pellaeon hat geschrieben:
Nöööö TList ist schrott, weil die nur Zeiger frisst. Bräuchte jetzt z.B. ne Liste von booleans. Da dürfte ich ja anfangen alle mit new anzulegen, um diese Liste nutzen zu können.
Äh. Du willst nicht allen ernstes einen Pointer auf einen Boolean machen wo ein Pointer ja ein Ordinalwert ist, oder? Du kannst in eine TList auch Pointer(True) und Pointer(False) hinzufügen. Zum Ablegen von Integern ist diese genau so geeignet, da True und False ja eigentlich auch nur Bytes sind. Ich benutze die TList recht häufig und finde sie bis auf wenige Ausnahmen (Bäume, Hash, Ringbuffer etc.) äußerst praktisch.
Das aber nur mal so am Rande.
Das mit dem Link ist irgendwie doof. Würde ich spontan in ein paar Tagen noch mal schauen.
Registriert: Mi Dez 15, 2004 20:36 Beiträge: 454 Wohnort: Wien, Österreich
Pellaeon hat geschrieben:
TList ist schrott, weil die nur Zeiger frisst.
Und genau deswegen ist es so toll. Notfall kannst du den ganzen Code von TList Klassenimplementierung aus VCL kopieren, und stta Pointer ein Typ deiner Wahl setzen. So haben wir templates in Delphi auch. ( ich weiss, es ist übertrieben )
_________________ "Meine Mutter sagt : 'Dumm ist der, der Dummes tut'." - Forrest Gump
Äh. Du willst nicht allen ernstes einen Pointer auf einen Boolean machen
Nein hatte ich ich nicht vor^^
Lossy eX hat geschrieben:
TList auch Pointer(True) und Pointer(False)
Stimmt das geht, ist ein guter Tipp , aber auch ein kleiner Hack . Zeiger für booleans "missbrauchen". *hehe* mal den Software-engeeniering Prof sagen was er dazu meint
_________________ __________
"C++ is the best language for garbage collection principally because it creates less garbage." Bjarne Stroustrup
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
In Zeigern sind normal ja Informationen zu Speicheradressen abgelegt und so castet man den Wert zu etwas anderes. So hat man sich einen Zwischenschritt gesparrt. Auch wenn man dafür das 32fache des eigenlichen Speicherbedarfs hat. Also nicht wirklich effizient. Aber für Integer schon recht gebräuchlich.
PS: Alle Delphikomponenten haben ja auch eine Integereigenschaft Namens Tag. In der kann man unter anderem auch Pointer hängen. Somit wären Benutzerdaten und Komponenten direkt verbunden. Auch wenns alles ein wenig Tricky ist.
Auch wenn man dafür das 32fache des eigenlichen Speicherbedarfs hat.
*hehe* Ich bezweifel das booleans als 1 Bit allokiert werden Hast also nur den 4fache Speicherverbrauch, zumindest im 32-Bit-System(muss man ja heutzutage dazu sagen)
_________________ __________
"C++ is the best language for garbage collection principally because it creates less garbage." Bjarne Stroustrup
Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.