<?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[Nirvana Iterator?]]></title><description><![CDATA[<p>Hallo,<br />
angenommen, ein vector v ist leer.<br />
Wohin zeigt dann v.begin() ? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/245749/nirvana-iterator</link><generator>RSS for Node</generator><lastBuildDate>Fri, 18 Sep 2026 12:57:23 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/245749.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 18 Jul 2009 10:00:59 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Nirvana Iterator? on Sat, 18 Jul 2009 10:00:59 GMT]]></title><description><![CDATA[<p>Hallo,<br />
angenommen, ein vector v ist leer.<br />
Wohin zeigt dann v.begin() ? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1745176</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1745176</guid><dc:creator><![CDATA[iterator vectorzeigtwohin]]></dc:creator><pubDate>Sat, 18 Jul 2009 10:00:59 GMT</pubDate></item><item><title><![CDATA[Reply to Nirvana Iterator? on Sat, 18 Jul 2009 10:43:47 GMT]]></title><description><![CDATA[<p>Auf <code>v.end()</code> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1745202</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1745202</guid><dc:creator><![CDATA[Registrierter Troll]]></dc:creator><pubDate>Sat, 18 Jul 2009 10:43:47 GMT</pubDate></item><item><title><![CDATA[Reply to Nirvana Iterator? on Sat, 18 Jul 2009 10:48:48 GMT]]></title><description><![CDATA[<p>undefiniert.</p>
<p>hab auch eine frage:</p>
<p>wenn vector mit new erzeugt wird und schon ein paar elemente hat - muss man vector.clear() machen oder reicht delete vector schon aus, wenn ich das programm beenden will? die elemente sind dann nirvana ja?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1745204</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1745204</guid><dc:creator><![CDATA[xBlackKnightx]]></dc:creator><pubDate>Sat, 18 Jul 2009 10:48:48 GMT</pubDate></item><item><title><![CDATA[Reply to Nirvana Iterator? on Sat, 18 Jul 2009 10:59:21 GMT]]></title><description><![CDATA[<p>xBlackKnightx schrieb:</p>
<blockquote>
<p>undefiniert.</p>
</blockquote>
<p>Falsch.</p>
<p>ISO/IEC14882 23.1/7 schrieb:</p>
<blockquote>
<p>begin() returns an iterator referring to the first element in the container. end() returns an iterator<br />
which is the past-the-end value for the container. If the container is empty, then begin() == end();</p>
</blockquote>
<blockquote>
<p>wenn vector mit new erzeugt wird und schon ein paar elemente hat - muss man vector.clear() machen oder reicht delete vector schon aus, wenn ich das programm beenden will? die elemente sind dann nirvana ja?</p>
</blockquote>
<p>Es macht nicht viel Sinn einen std::vector mit new zu erzeugen.</p>
<p>Falls du das doch machst, reicht ein delete aus, da die Elemente im vector ja automatisch verwaltet werden und somit spätestens beim zerstören des vectors ebenfalls zerstört werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1745208</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1745208</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 18 Jul 2009 10:59:21 GMT</pubDate></item><item><title><![CDATA[Reply to Nirvana Iterator? on Sat, 18 Jul 2009 11:03:55 GMT]]></title><description><![CDATA[<p>xBlackKnightx schrieb:</p>
<blockquote>
<p>undefiniert.</p>
</blockquote>
<p>Richtig.</p>
<p>ISO/IEC14882 23.1/7 schrieb:</p>
<blockquote>
<p>begin() returns an iterator referring to the first element in the container. end() returns an iterator<br />
which is the past-the-end value for the container. If the container is empty, then begin() == end();</p>
</blockquote>
<p>Und end() zu dereferenzieren, erzeugt undefiniertes Verhalten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1745210</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1745210</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Sat, 18 Jul 2009 11:03:55 GMT</pubDate></item><item><title><![CDATA[Reply to Nirvana Iterator? on Sat, 18 Jul 2009 11:08:39 GMT]]></title><description><![CDATA[<p>iterator vectorzeigtwohin schrieb:</p>
<blockquote>
<p>Hallo,<br />
angenommen, ein vector v ist leer.<br />
Wohin zeigt dann v.begin() ?</p>
</blockquote>
<p>Das ist ganz egal, weil Du das Ding nicht dereferenzieren darfst. Trotzdem bekommst Du ein gültiges Iterator-Objekt und kannst es mit dem von .end() vergleichen. Es ist also völlig in Ordnung so etwas zu schreiben:</p>
<pre><code class="language-cpp">void foo(vector&lt;int&gt; * pv)
{
  for(vector&lt;int&gt;::iterator bed = pv-&gt;begin(),
                            end = pv-&gt;end();
      beg != end; ++beg)
  {
    *beg *= 2;
  }
}
</code></pre>
<p>...auch wenn der Vektor leer ist. *beg wird ja dann nicht ausgeführt, weil beg==end gilt.</p>
<p>Gruß,<br />
SP</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1745214</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1745214</guid><dc:creator><![CDATA[Sebastian Pizer]]></dc:creator><pubDate>Sat, 18 Jul 2009 11:08:39 GMT</pubDate></item><item><title><![CDATA[Reply to Nirvana Iterator? on Sat, 18 Jul 2009 11:11:23 GMT]]></title><description><![CDATA[<p>Badestrand schrieb:</p>
<blockquote>
<p>xBlackKnightx schrieb:</p>
<blockquote>
<p>undefiniert.</p>
</blockquote>
<p>Richtig.</p>
</blockquote>
<p>Wohin begin zeigt ist sehr wohl definiert.</p>
<p>EDIT:<br />
OK, es ist nich definiert, wohin end zeigt. Aber der iterator ist auf jeden Fall gültig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1745215</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1745215</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sat, 18 Jul 2009 11:11:23 GMT</pubDate></item><item><title><![CDATA[Reply to Nirvana Iterator? on Sat, 18 Jul 2009 11:10:59 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>Wohin begin zeigt ist sehr wohl definiert.</p>
</blockquote>
<p>Wohin zeigt es denn, wenn <code>begin()==end()</code> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1745217</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1745217</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Sat, 18 Jul 2009 11:10:59 GMT</pubDate></item><item><title><![CDATA[Reply to Nirvana Iterator? on Sat, 18 Jul 2009 18:53:43 GMT]]></title><description><![CDATA[<p>xBlackKnightx schrieb:</p>
<blockquote>
<p>wenn vector mit new erzeugt wird und schon ein paar elemente hat - muss man vector.clear() machen oder reicht delete vector schon aus, wenn ich das programm beenden will? die elemente sind dann nirvana ja?</p>
</blockquote>
<p>Auch wenn Nirvana so ein cooler Ausdruck ist, wäre es gut, Sätze etwas präziser zu formulieren. Wenn du <code>delete</code> auf den <code>std::vector</code> anwendest, wird dessen Destruktor aufgerufen, was die Zerstörung der Elemente und Freigabe des Speichers auslöst. Weitere Zugriffe auf die Elemente resultieren somit in undefiniertem Verhalten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1745470</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1745470</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sat, 18 Jul 2009 18:53:43 GMT</pubDate></item></channel></rss>