<?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[Ist operator[] langsamer als ein Iterator?]]></title><description><![CDATA[<p>Hallo,</p>
<p>macht es operator[] beim Zugriff langsamer als einen Iterator, da operator[] sich ja nicht die momentane Position merkt?</p>
<p>Also das war fuer mich bisher immer die logische Erklaerung.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/182731/ist-operator-langsamer-als-ein-iterator</link><generator>RSS for Node</generator><lastBuildDate>Wed, 23 Sep 2026 00:29:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/182731.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 28 May 2007 16:10:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Ist operator[] langsamer als ein Iterator? on Mon, 28 May 2007 16:10:58 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>macht es operator[] beim Zugriff langsamer als einen Iterator, da operator[] sich ja nicht die momentane Position merkt?</p>
<p>Also das war fuer mich bisher immer die logische Erklaerung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1293892</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1293892</guid><dc:creator><![CDATA[endline]]></dc:creator><pubDate>Mon, 28 May 2007 16:10:58 GMT</pubDate></item><item><title><![CDATA[Reply to Ist operator[] langsamer als ein Iterator? on Mon, 28 May 2007 16:25:11 GMT]]></title><description><![CDATA[<p>endline schrieb:</p>
<blockquote>
<p>macht es operator[] beim Zugriff langsamer als einen Iterator, da operator[] sich ja nicht die momentane Position merkt?</p>
</blockquote>
<p>Generell ja. Zumindest aber sollte es genauso schnell sagen. Alles andere ist wohl von Maschine und Compiler abhängig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1293899</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1293899</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Mon, 28 May 2007 16:25:11 GMT</pubDate></item><item><title><![CDATA[Reply to Ist operator[] langsamer als ein Iterator? on Mon, 28 May 2007 19:45:46 GMT]]></title><description><![CDATA[<p>Hab mal folgendes kompiliert:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;ctime&gt;
#include &lt;vector&gt;

using namespace std;

class Timer
{
	static int counter;
	clock_t start;
	int id;
public:
    Timer()
		:id(counter++)
		,start(clock()) 
	{ 
	}

	~Timer()
	{
		cout&lt;&lt;&quot;Timer &quot;&lt;&lt;id&lt;&lt;&quot; took &quot;
			&lt;&lt;double(clock()-start)/CLOCKS_PER_SEC
			&lt;&lt;&quot; seconds\n&quot;;
	}
};

int Timer::counter=0;

int main()
{
	{
		std::vector&lt;int&gt; vec1(99999999);
		Timer timer1;
		for(std::vector&lt;int&gt;::iterator it = vec1.begin(); it!=vec1.end();++it)
			int a = *it;
	}

	{
		std::vector&lt;int&gt; vec2(99999999);
		Timer timer2;
		for(std::size_t i=0; i&lt;vec2.size(); ++i)
			int a = vec2[i];
	}

	return 0;
}
</code></pre>
<p>Ausgabe:</p>
<blockquote>
<p>Timer 0 took 2.98 seconds<br />
Timer 1 took 8.35 seconds</p>
</blockquote>
<p>Damit sehe ich meine Annahme bestaetigt... Sicherlich haengt das auch von der Implementation ab, wie du schon sagtest. Aber ich glaube weiterhin, dass es daran liegt, dass ein Iterator die Position behaelt, operator[] aber nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1294026</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1294026</guid><dc:creator><![CDATA[endline]]></dc:creator><pubDate>Mon, 28 May 2007 19:45:46 GMT</pubDate></item><item><title><![CDATA[Reply to Ist operator[] langsamer als ein Iterator? on Mon, 28 May 2007 19:52:10 GMT]]></title><description><![CDATA[<p>hast du das als release mit allen optimierungen getestet? müsste dann eigentlich beides denselben asm code ergeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1294029</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1294029</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Mon, 28 May 2007 19:52:10 GMT</pubDate></item><item><title><![CDATA[Reply to Ist operator[] langsamer als ein Iterator? on Mon, 28 May 2007 19:52:17 GMT]]></title><description><![CDATA[<p>endline schrieb:</p>
<blockquote>
<p>Ausgabe:</p>
<blockquote>
<p>Timer 0 took 2.98 seconds<br />
Timer 1 took 8.35 seconds</p>
</blockquote>
</blockquote>
<p>Hatte in etwa die selben Zahlen raus, nachdem ich -O3 noch hinzugefügt habe bin ich auf um die 10tel Sekunde gekommen. Erstaunlich wie gut der Compiler optimieren kann <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1294030</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1294030</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 28 May 2007 19:52:17 GMT</pubDate></item><item><title><![CDATA[Reply to Ist operator[] langsamer als ein Iterator? on Mon, 28 May 2007 20:42:09 GMT]]></title><description><![CDATA[<p>KasF schrieb:</p>
<blockquote>
<p>endline schrieb:</p>
<blockquote>
<p>Ausgabe:</p>
<blockquote>
<p>Timer 0 took 2.98 seconds<br />
Timer 1 took 8.35 seconds</p>
</blockquote>
</blockquote>
<p>Hatte in etwa die selben Zahlen raus, nachdem ich -O3 noch hinzugefügt habe bin ich auf um die 10tel Sekunde gekommen. Erstaunlich wie gut der Compiler optimieren kann <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
</blockquote>
<p>Kannst du die Ausgabe mit -O3 mal bitte zeigen?</p>
<p>Edit: Vermutlich macht das optimierte Programm gar nichts, da 'a' nicht verwendet und die Schleife auch nicht durchlaufen wird...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1294056</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1294056</guid><dc:creator><![CDATA[endline]]></dc:creator><pubDate>Mon, 28 May 2007 20:42:09 GMT</pubDate></item><item><title><![CDATA[Reply to Ist operator[] langsamer als ein Iterator? on Mon, 28 May 2007 20:42:08 GMT]]></title><description><![CDATA[<p>Bitte:</p>
<pre><code>Timer 0 took 0.062 seconds
Timer 1 took 0.141 seconds
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1294059</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1294059</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 28 May 2007 20:42:08 GMT</pubDate></item><item><title><![CDATA[Reply to Ist operator[] langsamer als ein Iterator? on Mon, 28 May 2007 20:42:36 GMT]]></title><description><![CDATA[<p>Danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1294060</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1294060</guid><dc:creator><![CDATA[endline]]></dc:creator><pubDate>Mon, 28 May 2007 20:42:36 GMT</pubDate></item><item><title><![CDATA[Reply to Ist operator[] langsamer als ein Iterator? on Mon, 28 May 2007 21:04:33 GMT]]></title><description><![CDATA[<pre><code>Timer 0 took 3.531 seconds
Timer 1 took 1.062 seconds
</code></pre>
<p>windoofs, vs express (release, optimize for speed), etwas älterer PC<br />
vor beide 'int a' in der main noch ein 'volatile' davorgesetzt <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>edit: ohne volatile</p>
<pre><code>Timer 0 took 0.562 seconds
Timer 1 took 0.391 seconds
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1294067</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1294067</guid><dc:creator><![CDATA[pale dog]]></dc:creator><pubDate>Mon, 28 May 2007 21:04:33 GMT</pubDate></item><item><title><![CDATA[Reply to Ist operator[] langsamer als ein Iterator? on Mon, 28 May 2007 21:01:26 GMT]]></title><description><![CDATA[<p>pale dog schrieb:</p>
<blockquote>
<pre><code>Timer 0 took 3.531 seconds
Timer 1 took 1.062 seconds
</code></pre>
</blockquote>
<p>Ja, woran liegt's? was sagt die Disassembly? Ist das Ergebnis reproduzierbar?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1294071</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1294071</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Mon, 28 May 2007 21:01:26 GMT</pubDate></item><item><title><![CDATA[Reply to Ist operator[] langsamer als ein Iterator? on Mon, 28 May 2007 21:05:17 GMT]]></title><description><![CDATA[<p>pale dog schrieb:</p>
<blockquote>
<pre><code>Timer 0 took 3.531 seconds
Timer 1 took 1.062 seconds
</code></pre>
<p>windoofs, vs express (release, optimize for speed), etwas älterer PC<br />
vor beide 'int a' in der main noch ein 'volatile' davorgesetzt <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>
</blockquote>
<p>füg mal noch</p>
<pre><code class="language-cpp">#define _SECURE_SCL 0
</code></pre>
<p>ein. Bereichsüberprüfungen wollen wir schließlich nicht ausmessen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1294076</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1294076</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Mon, 28 May 2007 21:05:17 GMT</pubDate></item><item><title><![CDATA[Reply to Ist operator[] langsamer als ein Iterator? on Mon, 28 May 2007 21:08:55 GMT]]></title><description><![CDATA[<p>Konrad Rudolph schrieb:</p>
<blockquote>
<p>Ist das Ergebnis reproduzierbar?</p>
</blockquote>
<p>nö, <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /><br />
reproduzierbar ist etwa das:</p>
<pre><code>Timer 0 took 1.094 seconds
Timer 1 took 1.078 seconds
</code></pre>
<p>bei meinem ersten versuch haben wohl andere tasks dazwischengefunkt.<br />
<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/1294078</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1294078</guid><dc:creator><![CDATA[pale dog]]></dc:creator><pubDate>Mon, 28 May 2007 21:08:55 GMT</pubDate></item><item><title><![CDATA[Reply to Ist operator[] langsamer als ein Iterator? on Mon, 28 May 2007 21:17:16 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>füg mal noch</p>
<pre><code class="language-cpp">#define _SECURE_SCL 0
</code></pre>
<p>ein. Bereichsüberprüfungen wollen wir schließlich nicht ausmessen.</p>
</blockquote>
<p>ändert nix, hatte schon vorher in den projekteinstellungen die bereichsüberprüfung ausgeschaltet <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 />
btw: mit volatile liegen bei mir beide etwa bei einer sekunde, ohne volatile hatte ich mal eben:</p>
<pre><code>Timer 0 took 0.016 seconds
Timer 1 took 0 seconds
</code></pre>
<p>da war wohl gerade scheduler- und interruptmässig nicht viel los <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/1294083</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1294083</guid><dc:creator><![CDATA[pale dog]]></dc:creator><pubDate>Mon, 28 May 2007 21:17:16 GMT</pubDate></item></channel></rss>