<?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[was ist schneller (vector, map, usw.)???]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich lese in Speicher (Structur) ca. 10.000 Datensätze die Structur seht so aus:</p>
<p>typedef struct<br />
{<br />
CString spalte1;<br />
CString index1;<br />
int index2;<br />
double index3;<br />
} tS;</p>
<p>Die spalten index1-3 sind eindeutig, jetzt muss ich auf Grund von den drei spalten in der Structur suchen und die Structur um die spalte1 ergänzen.<br />
Es gibt ca. 400.000 Suchvorgänge bzw. Zugriffe über Index.</p>
<p>Meine Frage: wie sollte ich vorgehen damit ich es so performant wie möglich programmier:<br />
(vector, map, usw.)???</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/145884/was-ist-schneller-vector-map-usw</link><generator>RSS for Node</generator><lastBuildDate>Thu, 03 Sep 2026 12:25:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/145884.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 02 May 2006 09:33:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to was ist schneller (vector, map, usw.)??? on Tue, 02 May 2006 09:33:35 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich lese in Speicher (Structur) ca. 10.000 Datensätze die Structur seht so aus:</p>
<p>typedef struct<br />
{<br />
CString spalte1;<br />
CString index1;<br />
int index2;<br />
double index3;<br />
} tS;</p>
<p>Die spalten index1-3 sind eindeutig, jetzt muss ich auf Grund von den drei spalten in der Structur suchen und die Structur um die spalte1 ergänzen.<br />
Es gibt ca. 400.000 Suchvorgänge bzw. Zugriffe über Index.</p>
<p>Meine Frage: wie sollte ich vorgehen damit ich es so performant wie möglich programmier:<br />
(vector, map, usw.)???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1049400</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1049400</guid><dc:creator><![CDATA[performenc]]></dc:creator><pubDate>Tue, 02 May 2006 09:33:35 GMT</pubDate></item><item><title><![CDATA[Reply to was ist schneller (vector, map, usw.)??? on Tue, 02 May 2006 09:43:53 GMT]]></title><description><![CDATA[<p>Also auf jeden Fall benötigst du einen Vergleichsoperator (&quot;kleiner als&quot;) für deine Klasse, sonst bleibt dir nichts anderes übrig als vector.</p>
<p>Danach kommt es wohl darauf an, wie deine Daten reinkommen. Wenn du einmal alles einliest und dann nur noch suchst, könnte der Vector sogar schneller sein<sup>*</sup>, wenn du ständig neue Werte einliest, ersetzt und ändern willst, ist eine map günstiger (dabei mußt du allerdings deine struct in zwei Teile zerlegen - map-Schlüssel dürfen nicht verändert werden).</p>
<p><sup>*</sup> das gilt allerdings nur, wenn du Sortierung nutzt:</p>
<pre><code class="language-cpp">vector&lt;tS&gt; data;
copy(istream_iterator&lt;tS&gt;(fin),istream_iterator&lt;tS&gt;(),data);
sort(data.begin(),data.end();

...
tS searchval;
vector&lt;tS&gt;::iterator p=lower_bound(data.begin(),data.end(),searchval);
searchval-&gt;spalte1=...;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1049403</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1049403</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 02 May 2006 09:43:53 GMT</pubDate></item><item><title><![CDATA[Reply to was ist schneller (vector, map, usw.)??? on Tue, 02 May 2006 09:52:25 GMT]]></title><description><![CDATA[<p>Ich lese erstmal alles auf einmal ein, und dann möchte ich suchen.<br />
Also vector ist für mich besser, ok ich brauche aber trotzdem den Vergleichsoperator oder wie geht es denn beim vector?????</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1049408</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1049408</guid><dc:creator><![CDATA[performenc]]></dc:creator><pubDate>Tue, 02 May 2006 09:52:25 GMT</pubDate></item><item><title><![CDATA[Reply to was ist schneller (vector, map, usw.)??? on Tue, 02 May 2006 10:00:37 GMT]]></title><description><![CDATA[<p>Brauchen tust du ihn nicht unbedingt, aber er ist von Vorteil (suchen auf einer unsortierten Folge benötigt O(n), suchen auf einer sortierten Folge schaffst du in O(log n) - allerdings brauchst du ein Ordnungskriterium, um suchen zu können).</p>
<p>Und wie du mit dem Vektor umgehst, habe ich doch sogar mit Code unterlegt: Am Anfang alle Werte einlesen und anschließend sortieren (sort()), danach kannst du per lower_bound() das &quot;richtige&quot; Element suchen und bearbeiten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1049420</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1049420</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 02 May 2006 10:00:37 GMT</pubDate></item></channel></rss>