doppeltes foreach der selben liste?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Josef Sniatecki
Beiträge: 657
Registriert: 02.06.2008 21:29
Kontaktdaten:

Beitrag von Josef Sniatecki »

Arbeitet man jedoch mit Elementen die mit riesigen Strukturen
bestückt sind, dann eignet sich natürlich die Methode von Stargate.
Besonders deswegen, weil die Daten nicht ständig kopiert werden
müssen (Zeitverlust).

EDIT: Stargate hat mich schon überholt...
PB 4.61 | Windows Vista - 32Bit
Homepage

"Wahrlich es ist nicht das Wissen, sondern das Lernen, nicht das Besitzen sondern das Erwerben, nicht das Dasein, sondern das Hinkommen, was den grössten Genuss gewährt." - Carl Friedrich Gauß
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

> jo klar, das war auch meine "alte" Variante damals, ...
Die ich für einen Anfänger auch besser hielt.

> aber inzwischen habe die die Pointer schätzen gelernt...
Pointer sind auch meine Freunde :mrgreen:

> Es ist einfach kürzer ...
Nicht wirklich. In deiner Schreibweise ist beides 22 Zeilen lang. <)
Josef Sniatecki hat geschrieben:Arbeitet man jedoch mit Elementen die mit riesigen Strukturen bestückt sind, dann eignet sich natürlich die Methode von Stargate.
Belege das mal bitte mit einem aussagekräftigen Beispiel. Denn ich habe noch nie einen Unterschied festgestellt.
Windows 10 Pro, 64-Bit / Outtakes | Derek
Benutzeravatar
Josef Sniatecki
Beiträge: 657
Registriert: 02.06.2008 21:29
Kontaktdaten:

Beitrag von Josef Sniatecki »

Wenns sein muss :

Code: Alles auswählen

Structure Bla
  Bla1.i
  Bla2.i
  Bla3.i
  Bla4.i
  Blabla.i
  Bla5.i
  Bla6.i
  Bla7.i
  SoJetztHabeIchKeinBock.i
EndStructure

Global NewList Blabla.Bla()

ForEach Blabla()
  *CurrentBlabla.Bla=@Blabla()
  ForEach Blabla()
    If *CurrentBlabla<>@Blabla()
      *CurrentBlabla\Bla3=Blabla()\Bla4+12345
      ...
    EndIf
  Next
Next
Mache ich jetzt das alles durch die Anfängervariante, müsste ich alle
Variablen in der Struktur in andere Variablen kopieren. Das wären dann
insgesamt 9 Variablen die ich dafür extra definieren müsste.

So mache ich das immer. Also natürlich ohne die ganzen Blablas...
PB 4.61 | Windows Vista - 32Bit
Homepage

"Wahrlich es ist nicht das Wissen, sondern das Lernen, nicht das Besitzen sondern das Erwerben, nicht das Dasein, sondern das Hinkommen, was den grössten Genuss gewährt." - Carl Friedrich Gauß
Benutzeravatar
Kaisky007
Beiträge: 83
Registriert: 25.05.2008 20:58

Beitrag von Kaisky007 »

naja, danke nochmal, es funktioniert :D
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

> Das wären dann insgesamt 9 Variablen die ich dafür extra definieren müsste.

ja nee, du willst ja nicht alle 9 eigenschaften rückspeichern...

ob jetzt der zugriff auf den speicherbereich so viel langsamer ist,
als den pointer auf diesen rückzuspeichern, ist noch die frage.
schließlich dürfte eh die halbe oder ganze liste im cache sein...
außerdem... spätestens beim debug oder vergleich musst du eh zugreifen.

also, ich denk mal das is gehupt wie geduppt.

wenn du's richtig fett schnell haben willst,
nimmste ein register zum zwischenspeichern statt ne variable,
aber dann nimmste auch ein Array statt der lahmen liste.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten