<?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[iteration über std::vector langsamer als pointerarithmetik über array?]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bin mir mit der Frage sehr unsicher - ich hatte mal ein Programm geschrieben welches auf der std lib aufsetzte. Ich hatte dann alles umgeschrieben und mich von der stdlib entfernt - alle arrays wurden dann über double* arr = malloc(...) aloziiert. Schleifen habe ich dann über pointerarithmetik umgeschrieben und nicht mehr mit iteratoren gearbeitet und seltsamerweise war das resultat ein viel schnelleres Programm. Kann das sein oder habe ich hier eine falsche Vorstellung? Ich kann es mir bis heute nicht erklären - aber es ist so wie ich es schreibe. Natürlich denkt ihr jetzt das liegt an meinem code - ich kanns auch nicht hier präsentieren, da ich die alte version mit der stdlib nicht mehr habe....</p>
<p>Danke für Hilfe</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/188567/iteration-über-std-vector-langsamer-als-pointerarithmetik-über-array</link><generator>RSS for Node</generator><lastBuildDate>Fri, 25 Sep 2026 03:11:41 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/188567.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 01 Aug 2007 20:15:28 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to iteration über std::vector langsamer als pointerarithmetik über array? on Wed, 01 Aug 2007 20:15:28 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bin mir mit der Frage sehr unsicher - ich hatte mal ein Programm geschrieben welches auf der std lib aufsetzte. Ich hatte dann alles umgeschrieben und mich von der stdlib entfernt - alle arrays wurden dann über double* arr = malloc(...) aloziiert. Schleifen habe ich dann über pointerarithmetik umgeschrieben und nicht mehr mit iteratoren gearbeitet und seltsamerweise war das resultat ein viel schnelleres Programm. Kann das sein oder habe ich hier eine falsche Vorstellung? Ich kann es mir bis heute nicht erklären - aber es ist so wie ich es schreibe. Natürlich denkt ihr jetzt das liegt an meinem code - ich kanns auch nicht hier präsentieren, da ich die alte version mit der stdlib nicht mehr habe....</p>
<p>Danke für Hilfe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1336835</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1336835</guid><dc:creator><![CDATA[gast_xy]]></dc:creator><pubDate>Wed, 01 Aug 2007 20:15:28 GMT</pubDate></item><item><title><![CDATA[Reply to iteration über std::vector langsamer als pointerarithmetik über array? on Wed, 01 Aug 2007 20:42:46 GMT]]></title><description><![CDATA[<p>gast_xy schrieb:</p>
<blockquote>
<p>...ich hatte mal ein Programm geschrieben welches auf der std lib aufsetzte. Ich hatte dann alles umgeschrieben und mich von der stdlib entfernt... seltsamerweise war das resultat ein viel schnelleres Programm.</p>
</blockquote>
<p>Grundsätzlich kannst du ohne STL auf manuellen Weg ein schnelleres Programm als mit STL schreiben. Hierbei musst du aber mehrere Dinge berücksichtigen:<br />
Hast du die STL so verwendet, das du sie nicht von Haus ausgebremmst hast (z.B. einen Vektor ständig vergrößert obwohl vorher bekannt war das du mehr elemente brauchst; verwendung von Zugriffsmethoden mit Bereichsprüfung kontra ohne Bereichsprüfungen?)...<br />
Was ist dir wichtig: das letzte Quentchen Geschwindigkeit oder bessere Wartbarkeit?</p>
<p>Unabhängig davon: Ich glaube das man bei einem richtigen Umgang mit der STL zwar ein wenig langsamer als Handoptimiert ist, aber ein &quot;viel schnelleres&quot; Programm erwarte ich bei dem Verzicht auf die STL eigentlich nicht.</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1336855</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1336855</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Wed, 01 Aug 2007 20:42:46 GMT</pubDate></item><item><title><![CDATA[Reply to iteration über std::vector langsamer als pointerarithmetik über array? on Wed, 01 Aug 2007 21:33:04 GMT]]></title><description><![CDATA[<p>Es ist zwar Implementierungsabhängig, aber im Normalfall sind die Iteratoren von std::vector gewöhnliche Zeiger, worduch das darüberiterieren keinen unterschied machen dürfte. Vermutlich lag es eher an dem vom Vorposter beschriebenen ständigen vergrößern des vectors, statt einem vorzeitigen reserveriens. Prinzipiell sollte die Verwendung eines std::vectors nicht viel langsamer sein als ein pures Array.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1336896</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1336896</guid><dc:creator><![CDATA[parallaxe]]></dc:creator><pubDate>Wed, 01 Aug 2007 21:33:04 GMT</pubDate></item><item><title><![CDATA[Reply to iteration über std::vector langsamer als pointerarithmetik über array? on Thu, 02 Aug 2007 09:40:21 GMT]]></title><description><![CDATA[<p>hab mich verpostet....bitte löschen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1337134</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1337134</guid><dc:creator><![CDATA[Mati]]></dc:creator><pubDate>Thu, 02 Aug 2007 09:40:21 GMT</pubDate></item><item><title><![CDATA[Reply to iteration über std::vector langsamer als pointerarithmetik über array? on Thu, 02 Aug 2007 09:41:07 GMT]]></title><description><![CDATA[<p>hmm es könnte durchaus sein, dass ich vektoren in ihrer Länge beeinflusst habe im Nachhinein.<br />
Leider geht es mir als erstes Kriterium um Geschwindigkeit. Ich habe ein sehr rechenintensives (viele for-schleifen über arrays) so dass es sich wirklich summieren könnte...</p>
<p>Danke für eure Hilfe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1337137</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1337137</guid><dc:creator><![CDATA[gast_xy]]></dc:creator><pubDate>Thu, 02 Aug 2007 09:41:07 GMT</pubDate></item><item><title><![CDATA[Reply to iteration über std::vector langsamer als pointerarithmetik über array? on Thu, 02 Aug 2007 13:42:39 GMT]]></title><description><![CDATA[<p>In diesem Fall könnten normale Array schon einiges an geschwindigkeit bringen.<br />
Das ist natürlich trotzdem kein Grund malloc und co. zu verwenden, new tut es auch. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1337330</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1337330</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 02 Aug 2007 13:42:39 GMT</pubDate></item><item><title><![CDATA[Reply to iteration über std::vector langsamer als pointerarithmetik über array? on Thu, 02 Aug 2007 13:54:01 GMT]]></title><description><![CDATA[<p>Braunstein schrieb:</p>
<blockquote>
<p>In diesem Fall könnten normale Array schon einiges an geschwindigkeit bringen....</p>
</blockquote>
<p>Aber nur, wenn er dabei die Größe nicht auch ändert ... und wenn er das Ändern der Größe da vermeiden kann, kann er es auch bei vector vermeiden. <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>Also ich denke: Array und vector analog verwendet, sollten gleich schnell sein.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1337349</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1337349</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Thu, 02 Aug 2007 13:54:01 GMT</pubDate></item><item><title><![CDATA[Reply to iteration über std::vector langsamer als pointerarithmetik über array? on Thu, 02 Aug 2007 14:01:44 GMT]]></title><description><![CDATA[<p>Das hat nicht nur was mit Größenänderungen zu tun. Ich habe ebenfalls die Erfahrung gemacht, dass auch der Zugriff über vector langsamer sein kann als bei einem normalen Array. Mag sein das es wenig ist, aber sehr vielen Zugriffen kann das schon etwas ausmachen. Auch bei unserer Software (numerische Simulationen) kommt es sehr auf Geschwindigkeit an.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1337357</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1337357</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 02 Aug 2007 14:01:44 GMT</pubDate></item><item><title><![CDATA[Reply to iteration über std::vector langsamer als pointerarithmetik über array? on Thu, 02 Aug 2007 14:18:57 GMT]]></title><description><![CDATA[<p>Braunstein schrieb:</p>
<blockquote>
<p>Das hat nicht nur was mit Größenänderungen zu tun. Ich habe ebenfalls die Erfahrung gemacht, dass auch der Zugriff über vector langsamer sein kann als bei einem normalen Array...</p>
</blockquote>
<p>Hier gibt es mehrere Fragen von meiner Seite:<br />
a) Wie greifst du auf die Vektorelemente zu [] oder at?<br />
b) Wie verwendest du den Vektor in Schleifen (bzw. wie sieht der Schleifenkopf aus... Häufiger Fehler an dieser Stelle sind ständige Methodenaufrufe des Vektors)<br />
c) Nutzt du die Algorithmen der STL, sofern passend?</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1337375</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1337375</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Thu, 02 Aug 2007 14:18:57 GMT</pubDate></item><item><title><![CDATA[Reply to iteration über std::vector langsamer als pointerarithmetik über array? on Thu, 02 Aug 2007 14:20:27 GMT]]></title><description><![CDATA[<p>a) mit []<br />
b) ich rufe size() nicht ständig neu auf.<br />
c) im Berechnungskern nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1337378</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1337378</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 02 Aug 2007 14:20:27 GMT</pubDate></item><item><title><![CDATA[Reply to iteration über std::vector langsamer als pointerarithmetik über array? on Thu, 02 Aug 2007 14:50:49 GMT]]></title><description><![CDATA[<p>Hier gibt es irgendwo einen Beitrag, in dem gemessen wurde, wie Iteration über Array und Vector mittels Zeiger und Iterator sich zueinander verhalten. Ich meine mich zu erinnern dass bei abgeschalteter Secure-STL (Microsoft) und Release-Build (Perf.-Optimierung an) alle getesteten Implementierungen von der Ausführungsgeschwindigkeit her identisch waren.</p>
<p>Müsste den Thread mal raussuchen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1337409</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1337409</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Thu, 02 Aug 2007 14:50:49 GMT</pubDate></item><item><title><![CDATA[Reply to iteration über std::vector langsamer als pointerarithmetik über array? on Thu, 02 Aug 2007 14:58:02 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich kenne den Thread. Es könnte ja durchaus sein, dass dieses verhalten Compilerabhängig ist. Wir hatten das damals auf dem BCB4 getstet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1337414</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1337414</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 02 Aug 2007 14:58:02 GMT</pubDate></item><item><title><![CDATA[Reply to iteration über std::vector langsamer als pointerarithmetik über array? on Thu, 02 Aug 2007 15:02:20 GMT]]></title><description><![CDATA[<p><a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-185390-and-postdays-is-0-and-postorder-is-asc-and-highlight-is-secure%2A-and-start-is-20.html" rel="nofollow">Hier</a> ist der Thread zu finden.</p>
<p>Braunstein! Welchen Compiler benutzt du? Der MSVC8 benutzt gutgemeint die Secure-Lib, d.h. es wird ALLES überprüft, was schief gehen könnte. Kann man aber abschalten. Siehe den verlinkten Thread.</p>
<p>EDIT: Naja, daaaamals auf dem BCB4. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> Probier es heute einfach nochmal aus, mit ner vernünftigen Implementierung. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1337416</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1337416</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Thu, 02 Aug 2007 15:02:20 GMT</pubDate></item><item><title><![CDATA[Reply to iteration über std::vector langsamer als pointerarithmetik über array? on Thu, 02 Aug 2007 15:07:53 GMT]]></title><description><![CDATA[<p>Mach ich vielleicht sogar mal. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
Ich habe jetzt hauptsächlich den BCB2007 im Einsatz. Der soll ja deutlich standardkonformer sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1337422</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1337422</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 02 Aug 2007 15:07:53 GMT</pubDate></item></channel></rss>