<?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[Datenstruktur zum Suchen aus konstanter Datenmenge]]></title><description><![CDATA[<p>Das programm wird eine Art Quelltext-parser.<br />
Ich habe in einer externen Datei Definitionen stehen, die mir sagen, welche Argument welche Funktion hat.<br />
Also z.b.:<br />
UnitItemInSlot=item,unit,integer</p>
<p>Jetzt will ich beim Parsen des Quelltextes natürlich wissen, welcher Parameter welchen Typ hat.<br />
Da würde sich eine Map und ein dynamisches Array anbieten, da ich dann über MyMap['UnitItemInSlot'][1] auf &quot;unit&quot; zugreifen könnte<br />
Aber Probleme:</p>
<ol>
<li>Welche struktur nehme ich statt dem Array? Das Array hat den Vorteil des einfach zugriffs per index, aber ich müsste es doch manuell freigeben (ist vermutlich nur am Ende des Programmes), richtig?</li>
<li>Ich habe &gt;800 Funktionen (als txt vorliegen) Wie kriege ich die in eine Struktur? Ich glaube der Programmstart würde sich stark verzögern, wenn ich den erst die Datei parsen lasse.</li>
</ol>
<p>Ein ähnliches Problem habe ich mit Konstanten (als Strings), die z.T. umbenannt werden müssen. Das allerdings anhand eines Typs. Die Definition habe ich wieder als txt und sieht so aus:<br />
RectNull=rect,null<br />
SoundNull=sound,null<br />
LimitOpEqual=limitop,EQUAL<br />
Soll heißen: Ein Parameter, der vom typ &quot;rect&quot; ist (lt. obiger Tabelle) und &quot;null&quot; ist (ist wirklich so als String da) soll in &quot;RectNull&quot; umbenannt werden.<br />
Hier sind es &gt;1000 Konstanten.<br />
Gleiches problem wie oben: Wie kriege ich die in eine Struktur ohne was von Hand zu machen?<br />
Wie sieht es mit der Suchzeit aus? Sollte ich da lieber eine Map so machen: map&lt;typ,map&lt;name,Ersetzung&gt;&gt; machen, oder verbraucht das vl zu viel Speicher?<br />
Oder eher nur eine Map und als Key &quot;typ|Name&quot; (&quot;|&quot; kommt in Typ und Name nicht vor)?</p>
<p>Ich habe eine RegExp fähigen Editor, den ich schon oft verwendet habe um Konstanten-Arrays zu erstellen. Damit kann man also gut formatieren.<br />
Aber ich weiß ebn nicht wie.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/265368/datenstruktur-zum-suchen-aus-konstanter-datenmenge</link><generator>RSS for Node</generator><lastBuildDate>Fri, 04 Sep 2026 05:39:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/265368.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 21 Apr 2010 21:18:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Datenstruktur zum Suchen aus konstanter Datenmenge on Wed, 21 Apr 2010 21:18:46 GMT]]></title><description><![CDATA[<p>Das programm wird eine Art Quelltext-parser.<br />
Ich habe in einer externen Datei Definitionen stehen, die mir sagen, welche Argument welche Funktion hat.<br />
Also z.b.:<br />
UnitItemInSlot=item,unit,integer</p>
<p>Jetzt will ich beim Parsen des Quelltextes natürlich wissen, welcher Parameter welchen Typ hat.<br />
Da würde sich eine Map und ein dynamisches Array anbieten, da ich dann über MyMap['UnitItemInSlot'][1] auf &quot;unit&quot; zugreifen könnte<br />
Aber Probleme:</p>
<ol>
<li>Welche struktur nehme ich statt dem Array? Das Array hat den Vorteil des einfach zugriffs per index, aber ich müsste es doch manuell freigeben (ist vermutlich nur am Ende des Programmes), richtig?</li>
<li>Ich habe &gt;800 Funktionen (als txt vorliegen) Wie kriege ich die in eine Struktur? Ich glaube der Programmstart würde sich stark verzögern, wenn ich den erst die Datei parsen lasse.</li>
</ol>
<p>Ein ähnliches Problem habe ich mit Konstanten (als Strings), die z.T. umbenannt werden müssen. Das allerdings anhand eines Typs. Die Definition habe ich wieder als txt und sieht so aus:<br />
RectNull=rect,null<br />
SoundNull=sound,null<br />
LimitOpEqual=limitop,EQUAL<br />
Soll heißen: Ein Parameter, der vom typ &quot;rect&quot; ist (lt. obiger Tabelle) und &quot;null&quot; ist (ist wirklich so als String da) soll in &quot;RectNull&quot; umbenannt werden.<br />
Hier sind es &gt;1000 Konstanten.<br />
Gleiches problem wie oben: Wie kriege ich die in eine Struktur ohne was von Hand zu machen?<br />
Wie sieht es mit der Suchzeit aus? Sollte ich da lieber eine Map so machen: map&lt;typ,map&lt;name,Ersetzung&gt;&gt; machen, oder verbraucht das vl zu viel Speicher?<br />
Oder eher nur eine Map und als Key &quot;typ|Name&quot; (&quot;|&quot; kommt in Typ und Name nicht vor)?</p>
<p>Ich habe eine RegExp fähigen Editor, den ich schon oft verwendet habe um Konstanten-Arrays zu erstellen. Damit kann man also gut formatieren.<br />
Aber ich weiß ebn nicht wie.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1886466</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1886466</guid><dc:creator><![CDATA[Flamefire]]></dc:creator><pubDate>Wed, 21 Apr 2010 21:18:46 GMT</pubDate></item><item><title><![CDATA[Reply to Datenstruktur zum Suchen aus konstanter Datenmenge on Wed, 21 Apr 2010 21:46:06 GMT]]></title><description><![CDATA[<p>Mach dir nicht so viele Gedanken über Performance sonder sieh lieber zu, dass du ein schönes, sauberes Programm schreibst. <em>Falls</em> es doch Performanceprobleme geben sollte, kann man bei einem sauber geschriebenem Programm relativ einfach die kritischen Stellen verbessern.</p>
<p>Im Übrigen: 1000 Datensätze? Das ist doch wohl nicht dein Ernst, dass du damit Speicher- oder Geschwindigkeitsprobleme bekommst! Bei einem C64 waren 1000 Datensätze der Bereich, wo man sich so langsam mal Gedanken um Performance machen sollte. Wenn's ein paar Milliarden Datensätze wären, dann solltest du dir auch auf einem modernen Computer mal Gedanken machen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1886476</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1886476</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 21 Apr 2010 21:46:06 GMT</pubDate></item><item><title><![CDATA[Reply to Datenstruktur zum Suchen aus konstanter Datenmenge on Wed, 21 Apr 2010 21:54:04 GMT]]></title><description><![CDATA[<p>Nja, das Programm so wie es vorher war brauchte 5s um einen kleineren Quelltext zu bearbeiten. Und da waren noch nicht so &quot;gründliche&quot; Techniken wie diese Listen im Einsatz, sondern da wurde noch viel geraten oder aus arrays genommen. Wenn was nicht &quot;gewusst&quot; war, wurde es übersprungen.<br />
Meine Bearbeitung soll es komplett machen.</p>
<p>Ok, dann Performance ist zweitrangig. Vorerst.</p>
<p>Wie kriege ich die Maps gefüllt? Muss ich wirklich Dateien mitliefern oder die in den Ressourcen speichern?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1886479</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1886479</guid><dc:creator><![CDATA[Flamefire]]></dc:creator><pubDate>Wed, 21 Apr 2010 21:54:04 GMT</pubDate></item><item><title><![CDATA[Reply to Datenstruktur zum Suchen aus konstanter Datenmenge on Wed, 21 Apr 2010 22:10:05 GMT]]></title><description><![CDATA[<p>Flamefire schrieb:</p>
<blockquote>
<p>Wie kriege ich die Maps gefüllt? Muss ich wirklich Dateien mitliefern oder die in den Ressourcen speichern?</p>
</blockquote>
<p>So wie du es für sinnvoll hältst. Beides hat Vor- und Nachteile. Ich weiß nicht genug über dein Projekt um das abzuwägen. Im Zweifelsfall sollte man externe Dateien nehmen.</p>
<p>Prinzipiell möglich ist es schon, die Daten in das Programm einzucompilieren, wenn man das möchte. Die übliche Technik ist es, sich den entsprechenden Code automatisiert erstellen zu lassen, entweder mit eine externe Scriptsprache oder (wenn man zuviel Zeit hat und eine kleine Herausforderung will) über den Präprozessor.</p>
<p>edit: Betreffend deinem ersten Beitrag: Wenn du die STL-Container benutzt (ich nehme mal an mit dynamischem Arry meinst du std::vector), dann musst du nichts manuell freigeben, die sind vollautomatisiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1886482</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1886482</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 21 Apr 2010 22:10:05 GMT</pubDate></item><item><title><![CDATA[Reply to Datenstruktur zum Suchen aus konstanter Datenmenge on Wed, 21 Apr 2010 22:47:54 GMT]]></title><description><![CDATA[<ol>
<li>nimm std::vector.</li>
<li>pack alle funktionen in EIN file, dann ist es auch kein grosses ding 800 funktionen zu parsen. 800 files zu lesen könnte dagegen ein paar sekunden dauern.</li>
</ol>
]]></description><link>https://www.c-plusplus.net/forum/post/1886489</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1886489</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 21 Apr 2010 22:47:54 GMT</pubDate></item></channel></rss>