<?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[iterator auf string vector, typ der von distance zurückgegeben wird]]></title><description><![CDATA[<p>Wenn ich einen &quot;iterator iter&quot; auf einen &quot;vector&lt;string&gt; X&quot; habe, und ich die Funktion distance einsetze um rauszufinden wieviele Elemente dieser hat, muss ich dann distance(iter.begin(), iter.end()) oder distance(iter.begin(), iter.end()-1) machen?<br />
Und was für einen Typ gibt distance zurück? (vector&lt;string&gt;::size_type ???)</p>
<p>MfG<br />
Stromberg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/230364/iterator-auf-string-vector-typ-der-von-distance-zurückgegeben-wird</link><generator>RSS for Node</generator><lastBuildDate>Sun, 27 Sep 2026 12:15:50 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/230364.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 25 Dec 2008 13:00:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to iterator auf string vector, typ der von distance zurückgegeben wird on Thu, 25 Dec 2008 13:00:00 GMT]]></title><description><![CDATA[<p>Wenn ich einen &quot;iterator iter&quot; auf einen &quot;vector&lt;string&gt; X&quot; habe, und ich die Funktion distance einsetze um rauszufinden wieviele Elemente dieser hat, muss ich dann distance(iter.begin(), iter.end()) oder distance(iter.begin(), iter.end()-1) machen?<br />
Und was für einen Typ gibt distance zurück? (vector&lt;string&gt;::size_type ???)</p>
<p>MfG<br />
Stromberg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1635241</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1635241</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Thu, 25 Dec 2008 13:00:00 GMT</pubDate></item><item><title><![CDATA[Reply to iterator auf string vector, typ der von distance zurückgegeben wird on Thu, 25 Dec 2008 13:27:00 GMT]]></title><description><![CDATA[<p>Hi,<br />
das sind Sachen die man selbst schnell ausprobieren bzw. nachschlagen kann, dabei würdest auch selbst mehr lernen.</p>
<p>distance(start,end) ist genauso intuitv zu bedienen wie alle anderen STL-Algorithmen. Es gibt dir die Anzahl der Elemente zwischen start und end zurück.<br />
Der Rückgabetyp ist iterator::difference_typ vom übergebenen iterator.</p>
<p><a href="http://www.cplusplus.com/reference/std/iterator/distance.html" rel="nofollow">http://www.cplusplus.com/reference/std/iterator/distance.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1635246</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1635246</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 25 Dec 2008 13:27:00 GMT</pubDate></item><item><title><![CDATA[Reply to iterator auf string vector, typ der von distance zurückgegeben wird on Thu, 25 Dec 2008 13:31:30 GMT]]></title><description><![CDATA[<p>Und wie schreib ich dass dann als Code, denn dass hier funzt bei mir nicht:</p>
<pre><code class="language-cpp">iterator::difference_type position = .....;
</code></pre>
<p>MfG<br />
Stromberg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1635249</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1635249</guid><dc:creator><![CDATA[Stromberg]]></dc:creator><pubDate>Thu, 25 Dec 2008 13:31:30 GMT</pubDate></item><item><title><![CDATA[Reply to iterator auf string vector, typ der von distance zurückgegeben wird on Thu, 25 Dec 2008 13:38:14 GMT]]></title><description><![CDATA[<p>KasF schrieb:</p>
<blockquote>
<p>Der Rückgabetyp ist iterator::difference_typ vom <strong>übergebenen iterator</strong>.</p>
</blockquote>
<pre><code class="language-cpp">vector&lt;string&gt;::iterator::difference_type
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1635251</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1635251</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 25 Dec 2008 13:38:14 GMT</pubDate></item><item><title><![CDATA[Reply to iterator auf string vector, typ der von distance zurückgegeben wird on Thu, 25 Dec 2008 13:51:10 GMT]]></title><description><![CDATA[<p>@KasF,<br />
Wäre nicht folgender Code sinnvoller?</p>
<pre><code class="language-cpp">std::iterator_traits&lt;std::vector&lt;string&gt;::iterator&gt;::difference_type diff1;
// bzw.
std::vector&lt;string&gt;::difference_type diff2;
// Sofern man gleich den Vektor als Typ vorliegen hat.
</code></pre>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1635259</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1635259</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Thu, 25 Dec 2008 13:51:10 GMT</pubDate></item><item><title><![CDATA[Reply to iterator auf string vector, typ der von distance zurückgegeben wird on Thu, 25 Dec 2008 14:47:56 GMT]]></title><description><![CDATA[<p>Dravere schrieb:</p>
<blockquote>
<p>@KasF,<br />
Wäre nicht folgender Code sinnvoller?</p>
<pre><code class="language-cpp">(1) std::iterator_traits&lt;std::vector&lt;string&gt;::iterator&gt;::difference_type diff1;
(2) std::vector&lt;string&gt;::difference_type diff2;
</code></pre>
<p>Grüssli</p>
</blockquote>
<p>(1) wird doch auch nur zu vector&lt;string&gt;::iterator::difference_type [24.3.1.2], also kann man sich hier auch die traits sparen. Würde ja nur Sinn machen, wenn man den Typ des Iterators nicht kennen würde bzw. bestimmen müsste.</p>
<p>(2) ist identisch zu vector&lt;string&gt;::iterator::difference_type [23.1.5], insofern hast du recht und es ist sinnvoller direkt vector&lt;string&gt;::difference_type zu schreiben <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/1635287</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1635287</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 25 Dec 2008 14:47:56 GMT</pubDate></item><item><title><![CDATA[Reply to iterator auf string vector, typ der von distance zurückgegeben wird on Thu, 25 Dec 2008 15:06:18 GMT]]></title><description><![CDATA[<p>@KasF: Beachte, dass ein Iterator auch ein purer Zeiger sein kann. So wird es wohl bei optimierten std::vector Iteratoren sein. Bei einem Zeiger-Iterator kannst du difference_type nur über die traits bekommen. Dafür sind die ja da.</p>
<p>Gruß<br />
Don06</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1635302</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1635302</guid><dc:creator><![CDATA[Don06]]></dc:creator><pubDate>Thu, 25 Dec 2008 15:06:18 GMT</pubDate></item><item><title><![CDATA[Reply to iterator auf string vector, typ der von distance zurückgegeben wird on Thu, 25 Dec 2008 20:44:57 GMT]]></title><description><![CDATA[<p>Don06 schrieb:</p>
<blockquote>
<p>Bei einem Zeiger-Iterator kannst du difference_type nur über die traits bekommen.</p>
</blockquote>
<p>oO</p>
<pre><code class="language-cpp">std::vector&lt;T&gt; test;
/*lustige dinge mit test machen*/
std::vector&lt;T&gt;::difference_type t = std::distance(test.begin(), test.end());
std::cout &lt;&lt; t &lt;&lt; std::endl; //t für size ;D
</code></pre>
<p>ich brauch hier keine traits und bin mir auch ziemlich sicher, dass folgender code standard-konform ist ^^<br />
oder hab ich dich falsch verstanden?</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1635492</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1635492</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Thu, 25 Dec 2008 20:44:57 GMT</pubDate></item><item><title><![CDATA[Reply to iterator auf string vector, typ der von distance zurückgegeben wird on Thu, 25 Dec 2008 21:37:22 GMT]]></title><description><![CDATA[<p>Was nicht immer geht ist:</p>
<pre><code class="language-cpp">typedef std::vector&lt;T&gt;::iterator iterator_t;
iterator_t::difference_type d; // Das geht nur, falls iterator_t eine Klasse ist.
</code></pre>
<p>KasF hatte das vorgeschlagen.</p>
<p>KasF schrieb:</p>
<blockquote>
<p>KasF schrieb:</p>
<blockquote>
<p>Der Rückgabetyp ist iterator::difference_typ vom <strong>übergebenen iterator</strong>.</p>
</blockquote>
<pre><code class="language-cpp">vector&lt;string&gt;::iterator::difference_type
</code></pre>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1635525</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1635525</guid><dc:creator><![CDATA[Don06]]></dc:creator><pubDate>Thu, 25 Dec 2008 21:37:22 GMT</pubDate></item><item><title><![CDATA[Reply to iterator auf string vector, typ der von distance zurückgegeben wird on Thu, 25 Dec 2008 23:28:14 GMT]]></title><description><![CDATA[<p>Sind die Iteratoren bereits im C++-Code zu Zeigern optimiert? Das würde mich verwundern. Iteratoren müssen ja auch ein gemeinsames Interface bereitstellen, und das ist ja nicht nur auf die Zeigerarithmetik-Operatoren beschränkt...?</p>
<p>Und was ist denn eigentlich mit dem Typ <code>iterator::distance_type</code> ? Ist der implementierungsspezifisch?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1635579</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1635579</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 25 Dec 2008 23:28:14 GMT</pubDate></item><item><title><![CDATA[Reply to iterator auf string vector, typ der von distance zurückgegeben wird on Thu, 25 Dec 2008 23:38:03 GMT]]></title><description><![CDATA[<p>Das ist doch der Sinn von Traits, dass man PODs, genau so wie Klassen verwenden kann. DIe Iterator-Traits sind dann z.B. für Zeiger spezialisiert. Könnte man einfach mit iterator_t::difference_type auf den Typen zugreifen, wären Iterator-Traits ja vollkommen sinnlos.</p>
<p>Und ja, ich glaube im Release-Modus sehen zumindest einige Vektor-Implementationen so aus:</p>
<pre><code class="language-cpp">template &lt;typename T, ...&gt;
class vector
{
public:
    typedef T* iterator;
    typedef T const* const_iterator;
    ...
...
</code></pre>
<p>Gruß<br />
Don06</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1635587</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1635587</guid><dc:creator><![CDATA[Don06]]></dc:creator><pubDate>Thu, 25 Dec 2008 23:38:03 GMT</pubDate></item><item><title><![CDATA[Reply to iterator auf string vector, typ der von distance zurückgegeben wird on Thu, 25 Dec 2008 23:40:32 GMT]]></title><description><![CDATA[<p>Okay, danke, wieder was gelernt. Mit den Traits hatte ich bisher gar nie zu tun...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1635590</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1635590</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 25 Dec 2008 23:40:32 GMT</pubDate></item><item><title><![CDATA[Reply to iterator auf string vector, typ der von distance zurückgegeben wird on Fri, 26 Dec 2008 00:55:31 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Okay, danke, wieder was gelernt. Mit den Traits hatte ich bisher gar nie zu tun...</p>
</blockquote>
<p>Da siehst du im übrigen auch die Spezialisierungen aufgelistet:<br />
<a href="http://www.cplusplus.com/reference/std/iterator/iterator_traits.html" rel="nofollow">http://www.cplusplus.com/reference/std/iterator/iterator_traits.html</a></p>
<p>Grüssli</p>
<p>PS: Ist jemand schon aufgefallen, dass die Seite erweitert wurde?<br />
-&gt; <a href="http://www.cplusplus.com/reference/std/" rel="nofollow">http://www.cplusplus.com/reference/std/</a><br />
Da hat es inzwischen fast alle Punkte, was die Referenz nun endlich wohl vollständig macht. Auch die locales sind endlich vorhanden mit allem drum und dran.<br />
-&gt; <a href="http://www.cplusplus.com/reference/std/locale/" rel="nofollow">http://www.cplusplus.com/reference/std/locale/</a></p>
<p>(ok, das ist aber nun sehr off-topic, sry :))</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1635621</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1635621</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Fri, 26 Dec 2008 00:55:31 GMT</pubDate></item><item><title><![CDATA[Reply to iterator auf string vector, typ der von distance zurückgegeben wird on Fri, 26 Dec 2008 03:34:39 GMT]]></title><description><![CDATA[<p>Ein Zeiger ist ein gültiger Iterator.<br />
Sich darauf zu verlassen dass Iterator-Typen irgendwelche Typedefs oder Memberfunktionen haben == asking for trouble.</p>
<p>D.h. &quot;iter.begin()&quot; und &quot;iter.end()&quot; kann schonmal nicht funktionieren. Bzw. besser: muss nicht funktionieren, und funktioniert auch normalerweise nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1635655</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1635655</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Fri, 26 Dec 2008 03:34:39 GMT</pubDate></item></channel></rss>