<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Array von Klassen]]></title><description><![CDATA[<p>Hallo,<br />
ich plane eine Art &quot;Game of Life&quot; zu erstellen. Hierzu benötige ich einen Array von ca. 1000 Instanzen einer Klasse mit Namen &quot;Organismus&quot;.</p>
<p>Nun kann es rundenweise dazu kommen, dass ein Großteil der Instanzen gelöscht (gestorben) oder neu initialisiert (geboren) werden müssen.<br />
Wie sollte ich das am klügsten anstellen; einen Stack wo ich speichere welche Instanzen (=Arraynummern) ich kurz zuvor gelöscht habe, die ich dann gezielt wieder neu initialisiere?</p>
<p>Ich hoffe ich habe mein Problem verständlich ausgedrückt. Ein Codebeispiel habe ich noch nicht - befinde mich noch in der Papierphase <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Vielen Dank,<br />
Bra.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/141334/array-von-klassen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 31 Aug 2026 11:05:55 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/141334.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 21 Mar 2006 06:08:57 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Array von Klassen on Tue, 21 Mar 2006 06:08:57 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich plane eine Art &quot;Game of Life&quot; zu erstellen. Hierzu benötige ich einen Array von ca. 1000 Instanzen einer Klasse mit Namen &quot;Organismus&quot;.</p>
<p>Nun kann es rundenweise dazu kommen, dass ein Großteil der Instanzen gelöscht (gestorben) oder neu initialisiert (geboren) werden müssen.<br />
Wie sollte ich das am klügsten anstellen; einen Stack wo ich speichere welche Instanzen (=Arraynummern) ich kurz zuvor gelöscht habe, die ich dann gezielt wieder neu initialisiere?</p>
<p>Ich hoffe ich habe mein Problem verständlich ausgedrückt. Ein Codebeispiel habe ich noch nicht - befinde mich noch in der Papierphase <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Vielen Dank,<br />
Bra.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1020820</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1020820</guid><dc:creator><![CDATA[braten]]></dc:creator><pubDate>Tue, 21 Mar 2006 06:08:57 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Klassen on Tue, 21 Mar 2006 07:12:20 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>du suchst wohl nach einem dynamischen Array oder Liste wie <em>std::vector</em> oder <em>std::list</em>, in der keine feste Anzahl sondern nur die gültigen Instanzen aufgeführt und gezählt werden.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1020854</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1020854</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Tue, 21 Mar 2006 07:12:20 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Klassen on Tue, 21 Mar 2006 08:49:38 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Wobei das ständige Löschen und neu erzeugen sicher die langsamste Variante wäre. Besser ist hier wohl ein Array konstanter Größe, wo nur ein Flag lebend/tot gesetzt wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1020877</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1020877</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 21 Mar 2006 08:49:38 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Klassen on Tue, 21 Mar 2006 09:07:16 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>@ Braunstein : aber dafür must du dann ggf. durch hunderter gelöschter Instanzen iterieren. Ist eben abzuwägen, ob mehr iteriert oder gelöscht/erstellt wird.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1020884</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1020884</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Tue, 21 Mar 2006 09:07:16 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Klassen on Tue, 21 Mar 2006 09:11:00 GMT]]></title><description><![CDATA[<p>Ich denke mal, dass löschen und neu erstellen ziemlich langsam ist. Es müssten schon sehr viele Iterationen werden um da langsamer zu werden. Die endgültige Wahrheit darüber kann aber nur ein Versuch bringen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1020886</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1020886</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 21 Mar 2006 09:11:00 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Klassen on Tue, 21 Mar 2006 12:58:20 GMT]]></title><description><![CDATA[<p>es würde ja ein einfaches Überschreiben der Klassenmembervariablen genügen. Im Sinne von:<br />
Ist Organismus 500 gestorben, dann wird Klassen-Array[500] frei, z.B. über ein flag gekennzeichnet - und dann aussortiert. Die Nummer 500 wird auf einen Stack geschrieben.<br />
Nun wird ein Organismus (in derselben Runde oder später) geboren. Diesem wird jetzt vom Stack die erste Nummer geholt, 500 in diesem Fall, und alle Klassenmembervariablen dieser Klasse mit entsprechenden Werten neu gesetzt.<br />
vielleicht nicht sehr elegant <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>So hatte ich mir das gedacht. Keine Ahnung wie schnell das geht. Bei 1000 Klasseninstanzen kann Geschwindigkeit aber ein nicht zu vernachlässigbarer Faktor sein ;).</p>
<p>Bra.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1021019</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1021019</guid><dc:creator><![CDATA[braten]]></dc:creator><pubDate>Tue, 21 Mar 2006 12:58:20 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Klassen on Tue, 21 Mar 2006 15:03:56 GMT]]></title><description><![CDATA[<p>Da du doch eigentlich immer alle Elemente testen mußt (tote und lebende) macht es doch eigentlich keinen Sinn hier das Array ständig zu verändern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1021138</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1021138</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 21 Mar 2006 15:03:56 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Klassen on Tue, 21 Mar 2006 15:12:02 GMT]]></title><description><![CDATA[<p>wenn du ein array fester größe verwendest, kann es schon sinnvoll sein, die indizes der gelöschten auf nem stack vorzuhalten. andererseits könntest du aber auch eine linkedlist verwenden, die toten einfach rauslöschen und die neuen ans ende klatschen.</p>
<p>bei nur 1000 instanzen wird das ganze idr aber noch fix genug sein, als dass man selbst bei größten verrenkungen nen unterschied merkt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1021144</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1021144</guid><dc:creator><![CDATA[thordk]]></dc:creator><pubDate>Tue, 21 Mar 2006 15:12:02 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Klassen on Tue, 21 Mar 2006 15:21:06 GMT]]></title><description><![CDATA[<p>Wie Braunstein schon angedeutet hat, macht es bei einer Art &quot;Game Of Life&quot;, das heißt einem <a href="http://de.wikipedia.org/wiki/Zellul%C3%A4rer_Automat" rel="nofollow">zellulären Automaten</a>, keinen Sinn, Organismen aus dem Array zu löschen, weil jeder Organismus samt bestimmten Nachbarn gecheckt werden muss, um zu entscheiden, ob er überlebt, stirbt, zum Leben erwacht, oder sonst was mit ihm passiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1021152</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1021152</guid><dc:creator><![CDATA[winheis]]></dc:creator><pubDate>Tue, 21 Mar 2006 15:21:06 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Klassen on Tue, 21 Mar 2006 16:15:40 GMT]]></title><description><![CDATA[<p>gestorbene Organismen haben keinerlei Funktion mehr, insbes. auf das Überleben der Anderen. Auch eine Reinkarnation ist nicht geplant. Sie im Array zu belasen würde doch heissen, eine Menge Schrott zu verwalten. Ich würde Sie daher schon gerne löschen.<br />
Vielleicht ist aber ein Sortieralgorithmus angebracht, der alle toten Organismen löscht und anschließend die Lücken &quot;zusammenschiebt&quot;, damit ein neuer Organismus die Nummer: lebende Organismen + 1 zugewiesen bekommen kann.<br />
Auf jeden Fall hilft es sich vor dem programmieren darüber Gedanken zu machen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
Erst einmal vielen Dank bis hierher!<br />
Bra.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1021209</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1021209</guid><dc:creator><![CDATA[braten]]></dc:creator><pubDate>Tue, 21 Mar 2006 16:15:40 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Klassen on Tue, 21 Mar 2006 16:51:03 GMT]]></title><description><![CDATA[<p>Hallo</p>
<blockquote>
<p>Vielleicht ist aber ein Sortieralgorithmus angebracht, der alle toten Organismen löscht und anschließend die Lücken &quot;zusammenschiebt&quot;, damit ein neuer Organismus die Nummer: lebende Organismen + 1 zugewiesen bekommen kann.</p>
</blockquote>
<p>was fast automatisch schonmal <em>std::vector</em> macht.<br />
Sprich du must nur mit <em>erase</em> ein oder mehrere Elemente löschen.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1021214</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1021214</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Tue, 21 Mar 2006 16:51:03 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Klassen on Tue, 21 Mar 2006 18:02:40 GMT]]></title><description><![CDATA[<p>hi</p>
<p>also die frage stellt sich, ob Deine organismen beweglich sind oder nicht.<br />
falls nicht, wie im original game of life, genügt ein statischer 2D array von ein/aus objekten, selbst mit nem weiteren zustand &quot;halbtot&quot; lässt sich das noch ohne viel speicher realisieren. sowas hab ich schonmal gemacht, aber mit delphi. (graphisch mit zustandsbuttons dargestellt, die auch gleich zum setzten der startbedingungen fungierten). die zelle wird aktiviert(=1), wenn eine neuer organismus an der stelle entsteht und deaktiviert (=0) wenn er wieder stirbt. dabei setzt Du nur eine variable, was sicher schneller geht, als container zu füllen.<br />
ganz andere probleme stellen sich bei beweglichen organismen. versuch seit ner weile eine komplexe evolutionssimulation zu machen. mit räuber-beute beziehungen und nährstoffkreisläufen. dabei stellt sich mir auch die frage, wie ich eine container class 'population' für organismen gleicher art am effektivsten aufsetze.<br />
hab schon überlegt mit eindeutigen IDs zu arbeiten..aber bin noch nicht soweit.<br />
wenn Du ne lösung findest würds mich auch interessiern..<br />
( mein einzelner chloroplast photosynthetisiert schon fröhlich und den einsamen mytochonder freuts, dass er zückerchen schlecken darf <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /> )</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1021232</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1021232</guid><dc:creator><![CDATA[1310]]></dc:creator><pubDate>Tue, 21 Mar 2006 18:02:40 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Klassen on Tue, 21 Mar 2006 18:55:59 GMT]]></title><description><![CDATA[<p>1310,<br />
klingt wirklich interressant was du da entwickelst.</p>
<p>Das original &quot;Game of Life&quot; hatte ich übrigens damals unter der win32api schon programmiert und wollte dieses Projekt nun nochmal unter .net aufziehen um die gesamte Entwicklungsumgebung der VC++2005 EE kennenzulernen (schon gewöhnungsbedürftig, wenn man 6 Jahre keinen Code geschrieben hat und damals eher c denn c++ programmiert und die MFC sowieso gemieden hat...)</p>
<p>Langfristiges Ziel soll schon eine Art &quot;Zellularautomat&quot; sein, der schrittweise um verschiedene Funktionen/Eigenschaften ergänzt wird. Bin - wie gesagt- zur Zeit erst in der Planung. Bewegung gehört natürlich zur Grundausstattung der Organismen.</p>
<p>Viele Grüsse,<br />
Bra.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1021265</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1021265</guid><dc:creator><![CDATA[braten]]></dc:creator><pubDate>Tue, 21 Mar 2006 18:55:59 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Klassen on Tue, 21 Mar 2006 19:20:09 GMT]]></title><description><![CDATA[<p>hab mir als test mal nen rudel hasen gebastelt. dabei hielt ich zwar immer die anzahl statisch, hab sie vor dem start festgelegt. wobei hinzufügen ja kein problem ist. hatte es als array ausgelegt und bin einfach per for schlaufe durch alle durch und hab ne hase::move() methode ausgeführt.<br />
lustig wenn man einem hasen sagt: &quot;geh auf den nächstgelegenen nachbar zu, bis der abstand zu deinen drei nächsten nachbarn gleich ist. aber wenn dir einer zu nah kommt, schubs ihn weg.&quot;<br />
mit derart simplen regeln hat ich völlig unvorhersehbares &quot;schwärmverhalten&quot;, wobei es ja eher rotten sind bei hasen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /><br />
sass stunden davor und hab nur zugeschaut. vom eigentlichen ziel beute-räuber bin ich total abgekommen. für füchse hats damals nicht gereicht..</p>
<p>übrigens hat mich m.crithon's 'prey' ins &quot;schwärmen&quot; gebracht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1021287</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1021287</guid><dc:creator><![CDATA[1310]]></dc:creator><pubDate>Tue, 21 Mar 2006 19:20:09 GMT</pubDate></item></channel></rss>