<?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[Frage zu deque]]></title><description><![CDATA[<p>Ist es wichtig dass man bei deque und alle anderen Container mit iterator auf die Elemente zugreift?</p>
<pre><code class="language-cpp">deque&lt;int&gt; deque;
deque.push_back(5676);
...
</code></pre>
<p>Bisher hab ich immer mit deque[i] in einer forschleife auf die Elemente zugegriffen, um von Vorne nach Ende oder andersrum auszulesen.</p>
<p>Kann es sein dass es immer ein random-access ist, auch wenn's in einer for-schleife ist?</p>
<p>Zweite Frage zu deque: wenn ich paar mal push_back und paar mal push_front mache, so wird anscheinend nicht mehr erkannt wo die Null ist (welches das erste Element war). Mir wäre das aber wichtig, welche die negativen und welche die positiven Elemente wären. Soll ich dafür 2 container erzeugen für jede eine Richtung, oder einfach nur ein Zähler, der zurückzählt welches Element die Null wäre?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/244588/frage-zu-deque</link><generator>RSS for Node</generator><lastBuildDate>Sat, 19 Sep 2026 09:49:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/244588.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 02 Jul 2009 11:23:47 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zu deque on Thu, 02 Jul 2009 11:23:47 GMT]]></title><description><![CDATA[<p>Ist es wichtig dass man bei deque und alle anderen Container mit iterator auf die Elemente zugreift?</p>
<pre><code class="language-cpp">deque&lt;int&gt; deque;
deque.push_back(5676);
...
</code></pre>
<p>Bisher hab ich immer mit deque[i] in einer forschleife auf die Elemente zugegriffen, um von Vorne nach Ende oder andersrum auszulesen.</p>
<p>Kann es sein dass es immer ein random-access ist, auch wenn's in einer for-schleife ist?</p>
<p>Zweite Frage zu deque: wenn ich paar mal push_back und paar mal push_front mache, so wird anscheinend nicht mehr erkannt wo die Null ist (welches das erste Element war). Mir wäre das aber wichtig, welche die negativen und welche die positiven Elemente wären. Soll ich dafür 2 container erzeugen für jede eine Richtung, oder einfach nur ein Zähler, der zurückzählt welches Element die Null wäre?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1735963</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1735963</guid><dc:creator><![CDATA[xBlackKnightx]]></dc:creator><pubDate>Thu, 02 Jul 2009 11:23:47 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu deque on Thu, 02 Jul 2009 12:04:26 GMT]]></title><description><![CDATA[<p>How about <a href="http://lmgtfy.com/?q=c%2B%2B+reference+deque" rel="nofollow">http://lmgtfy.com/?q=c%2B%2B+reference+deque</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1735978</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1735978</guid><dc:creator><![CDATA[NimmDas!]]></dc:creator><pubDate>Thu, 02 Jul 2009 12:04:26 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu deque on Thu, 02 Jul 2009 17:13:39 GMT]]></title><description><![CDATA[<p>xBlackKnightx schrieb:</p>
<blockquote>
<p>Ist es wichtig dass man bei deque und alle anderen Container mit iterator auf die Elemente zugreift?</p>
</blockquote>
<p>Nein, es kommt natürlich drauf an, was du benötigst. Mit Iteratoren bist du grundsätzlich flexibler, falls du die Datenstruktur einmal austauschen möchtest (z.B. gegen eine <code>std::list</code> ).</p>
<p>xBlackKnightx schrieb:</p>
<blockquote>
<p>Kann es sein dass es immer ein random-access ist, auch wenn's in einer for-schleife ist?</p>
</blockquote>
<p>Wie ist das zu verstehen? Der Zugriff über <code>operator[]</code> ist per Definition ein Random Access; was soll eine Schleife damit zu tun haben?</p>
<p>xBlackKnightx schrieb:</p>
<blockquote>
<p>Zweite Frage zu deque: wenn ich paar mal push_back und paar mal push_front mache, so wird anscheinend nicht mehr erkannt wo die Null ist (welches das erste Element war). Mir wäre das aber wichtig, welche die negativen und welche die positiven Elemente wären. Soll ich dafür 2 container erzeugen für jede eine Richtung, oder einfach nur ein Zähler, der zurückzählt welches Element die Null wäre?</p>
</blockquote>
<p>Das ist wieder abhängig von deinen genauen Ansprüchen. Musst du zum Beispiel oft alle Elemente durchiterieren oder Algorithmen auf den gesamten Container anwenden, wäre ein einzelner wohl besser geeignet. Aber nimm doch eine kleine Wrapper-Klasse, die dir die Arbeit abnimmt, besonders wenn du die die Vorgehensweise mit einem Container wählst. Sonst vergisst du bestimmt einmal, mitzuzählen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1736201</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1736201</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 02 Jul 2009 17:13:39 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu deque on Fri, 03 Jul 2009 11:33:51 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Wie ist das zu verstehen? Der Zugriff über <code>operator[]</code> ist per Definition ein Random Access; was soll eine Schleife damit zu tun haben?</p>
</blockquote>
<p>Ich hab glaub ich falsch verstanden was im Buch oder Dokumentation stand. Nur bei list geht der random access langsam. Ich dachte, wenn man auf ein Element zugreifen will, so muss man den gesamten container einmal durchlaufen. Und bei einer for-schleife dachte ich, müsste man für jeden Zugriff einmal ganz durchlaufen. Offensichtlich geht der Zugriff nur bei list deshalb langsam, weil man erst nach einem Element suchen muss? Bei insertion wird gar nicht berücksichtig wo die Elemente abgelegt werden, so verstehe ich das zumindest.</p>
<p>Nexus schrieb:</p>
<blockquote>
<p>Das ist wieder abhängig von deinen genauen Ansprüchen. Musst du zum Beispiel oft alle Elemente durchiterieren oder Algorithmen auf den gesamten Container anwenden, wäre ein einzelner wohl besser geeignet. Aber nimm doch eine kleine Wrapper-Klasse, die dir die Arbeit abnimmt, besonders wenn du die die Vorgehensweise mit einem Container wählst. Sonst vergisst du bestimmt einmal, mitzuzählen.</p>
</blockquote>
<p>okay, klassen-wrapper darüber muss ich mich noch schlau machen.</p>
<p>vielen dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1736558</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1736558</guid><dc:creator><![CDATA[xBlackKnightx]]></dc:creator><pubDate>Fri, 03 Jul 2009 11:33:51 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu deque on Fri, 03 Jul 2009 11:49:30 GMT]]></title><description><![CDATA[<p>xBlackKnightx schrieb:</p>
<blockquote>
<p>Nexus schrieb:</p>
<blockquote>
<p>Wie ist das zu verstehen? Der Zugriff über <code>operator[]</code> ist per Definition ein Random Access; was soll eine Schleife damit zu tun haben?</p>
</blockquote>
<p>Ich hab glaub ich falsch verstanden was im Buch oder Dokumentation stand. Nur bei list geht der random access langsam. Ich dachte, wenn man auf ein Element zugreifen will, so muss man den gesamten container einmal durchlaufen. Und bei einer for-schleife dachte ich, müsste man für jeden Zugriff einmal ganz durchlaufen. Offensichtlich geht der Zugriff nur bei list deshalb langsam, weil man erst nach einem Element suchen muss? Bei insertion wird gar nicht berücksichtig wo die Elemente abgelegt werden, so verstehe ich das zumindest.</p>
<p>Nexus schrieb:</p>
<blockquote>
<p>Das ist wieder abhängig von deinen genauen Ansprüchen. Musst du zum Beispiel oft alle Elemente durchiterieren oder Algorithmen auf den gesamten Container anwenden, wäre ein einzelner wohl besser geeignet. Aber nimm doch eine kleine Wrapper-Klasse, die dir die Arbeit abnimmt, besonders wenn du die die Vorgehensweise mit einem Container wählst. Sonst vergisst du bestimmt einmal, mitzuzählen.</p>
</blockquote>
<p>okay, klassen-wrapper darüber muss ich mich noch schlau machen.</p>
<p>vielen dank!</p>
</blockquote>
<p>list bietet keinen random access</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1736568</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1736568</guid><dc:creator><![CDATA[std__list]]></dc:creator><pubDate>Fri, 03 Jul 2009 11:49:30 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu deque on Fri, 03 Jul 2009 14:57:59 GMT]]></title><description><![CDATA[<p>std__list schrieb:</p>
<blockquote>
<p>list bietet keinen random access</p>
</blockquote>
<p>in c++ reference steht</p>
<blockquote>
<p>Lists are sequences of elements stored in a linked list. Compared to vectors, they allow fast insertions and deletions, but slower random access</p>
</blockquote>
<p>?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1736683</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1736683</guid><dc:creator><![CDATA[xBlackKnightx]]></dc:creator><pubDate>Fri, 03 Jul 2009 14:57:59 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zu deque on Fri, 03 Jul 2009 15:04:02 GMT]]></title><description><![CDATA[<p>Völliger Humbug. Eine <code>std::list</code> ist eine doppelt verkettete Liste. Die hat überhaupt gar keinen <em>Random Access</em>. Wenn du über einen Index zugreifen möchtest, dann musst du Schritt für Schritt durch die Elemente gehen und eine Variable hochzählen, bis du beim entsprechenden Index angekommen bist. Das hat nichts mit <em>Random Access</em> zu tun <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>Deshalb bekommt man bei <code>std::list</code> auch einen <em>Bidirectional Iterator</em>, wenn man <code>begin</code> oder <code>end</code> aufruft, und keinen <em>Random Access Iterator</em>.</p>
<p>Übrigens, hier noch eine andere Referenz:<br />
<a href="http://www.cplusplus.com/reference/" rel="nofollow">http://www.cplusplus.com/reference/</a></p>
<p>Gefällt mir persönlich besser, ist oft auch detailierter. Falls du jetzt lieber mal eine andere Referenz ausprobieren möchtest *g*</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1736687</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1736687</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Fri, 03 Jul 2009 15:04:02 GMT</pubDate></item></channel></rss>