Zählen der tatsächlich vorhandenen Datensätze

Anfängerfragen zum Programmieren mit PureBasic.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

AND51 hat geschrieben:@ Ironsmurf:
Benutze bitte LinkedLists
:mrgreen:

erklär ihm lieber, wie der mehraufwand mit Array aussieht.

aber auch ein Array kann man sortieren, Lücken schließen durch aufrücken,
und auch sonst viel lustiges mit machen.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

> erklär ihm lieber, wie der mehraufwand mit Array aussieht
OK.


@ Ironsmurf:
Arrays böse - LinkedLists gut! :D


@ Kaeru Gaman + Ironsmurf + Alle anderen + mich selbst:
Es gibt bereits diverse kontroverse Konversationen im deutschen Forum über die Vor- und Nachteile von Arrays und LinkedLists.
Ich will das hier nicht noch einmal wiederholen, nur einmal ganz kurz und ganz grob:
Arrays sind performanter, LinkedLists bedienungsfreundlicher/handlicher.
In diesem Fall, um das Problem des Threadstellers zu lösen, würde ich mich für die bedienungsfreundlichere Lösungsmöglichkeit entscheiden, also mit LinkedLists arbeiten.
[ Ironie ] Benutze jetzt LinkedLists oder ich petze es Kiffi! :mrgreen: [ /Ironie ]


@ Kiffi:
Hilfe, Kiffi! Sag du auch mal was! :lol:
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
Ironsmurf
Beiträge: 111
Registriert: 04.01.2006 12:57
Computerausstattung: AMD FX(tm)-6300 Six-Core Processor
3.50 GHz / 8 GB Ram
Windows 7 / 64bit / Ultimate
Purebasic 5.20 LTS (Windows - x86)
Wohnort: Deutschland

Beitrag von Ironsmurf »

Nein, die Datensätze sind noch nicht alle gefüllt.
Aber sobald ich einen neuen Datensatz anlege, ist der Code und der Name Plicht, diese beiden Informationen sind immer als erstes dar.
Es kommt immer auf die Sichtweise des Betrachters an.
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

AND51 hat geschrieben:Hilfe, Kiffi! Sag du auch mal was! :lol:
ja, bin ja schon da :D

Mein persönlicher Favorit sind nun mal LinkedLists. Sie sind schön einfach
zu handhaben und die paar Millisekunden Zeitverlust (im Vergleich zu
Arrays) nehme ich gerne in Kauf, wenn ich dadurch einfacher zum
(Programmier-)-Ziel komme. Sooo zeitkritische Applikationen (wie
beispielsweise die Game-Progger hier) erstelle ich halt nicht.

Würde ich beispielsweise Arrays verwenden und müsste eine Liste von
DVDs einlesen (wie Ironsmurf vermutlich aus einer Textdatei), so müsste
ich mir am Anfang der Datei notieren, wie viele Zeilen die Datei beinhaltet,
damit ich mein Array entsprechend dimensionieren kann.
(Halte ich persönlich für relativ fehleranfällig)

Oder aber ich zähle vorher alle Zeilen der Textdatei durch, um dann die
Gewissheit zu haben, wie ich mein Array dimensionieren kann. Damit
würde ein Teil des Geschwindigkeitsvorteiles von Arrays gegenüber
LinkedLists wegfallen.

Es gibt auch keine native Funktion, um die Größe meines Arrays zu
ermitteln. Natürlich kann ich mir in einer globalen Variable merken, wenn
und wie groß ich mein Array (re)dimensioniert habe. Halte ich auch für
fehleranfällig und umständlich. Bei LinkedLists hingegen gibt CountList().

Elemente innerhalb eines Arrays zu löschen oder einfügen?
Aufwändig und fehleranfällig. Mit LinkedLists? Ein Klacks!

Das alles sind Argumente, die mich dazu bewegen, LinkedLists zu verwenden
(übrigens auch in anderen Sprachen: Collection und List(of T) ;-))

Grüße ... Kiffi
a²+b²=mc²
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

dem ist nichts hinzuzufügen.
Kiffi hat geschrieben:Sooo zeitkritische Applikationen (wie
beispielsweise die Game-Progger hier) erstelle ich halt nicht.
:mrgreen:

ehm.. doch eins noch..

eine Liste braucht zwei pointer für jedes Element, nämlich den next und den previous.
wenn ich also eine Liste von Longs brauche, brauche ich für jedes Listenelement 12Byte, für jedes Arrayelement 4byte.

Gameprogging ist nicht die einzige Anwendung,
aber grundsätzlich richtig:
bei zeitkritisch und/oder massive datacount hat LL seine Nachteile.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten