<?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[std::find-Signatur]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich habe gerade einen <code>std::find</code> -ähnlichen Algorithmus geschrieben und dabei intuitiv die Signatur wie folgt gestaltet:</p>
<pre><code class="language-cpp">template&lt;class InputIterator&gt;
InputIterator my_find ( InputIterator first, InputIterator last, const typename std::iterator_traits&lt;InputIterator&gt;::value_type&amp; value )
</code></pre>
<p>Dann hab ich gesehen, dass die Standard-Lib <em>zwei</em> Template-Parameter benutzt (sprich der Typ von <code>value</code> ist völlig unabhängig von den Iteratoren):</p>
<pre><code class="language-cpp">template&lt;class InputIterator, class T&gt;
InputIterator find ( InputIterator first, InputIterator last, const T&amp; value )
{
    for ( ;first!=last; first++) if ( *first==value ) break;
    return first;
}
</code></pre>
<p>Was sind die Vor- und Nachteile der einzelnen Varianten? Bestimmt hab ich bei meiner irgendeinen Denkfehler <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/304216/std-find-signatur</link><generator>RSS for Node</generator><lastBuildDate>Mon, 10 Aug 2026 00:49:43 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/304216.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 31 May 2012 20:47:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to std::find-Signatur on Fri, 01 Jun 2012 16:12:48 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich habe gerade einen <code>std::find</code> -ähnlichen Algorithmus geschrieben und dabei intuitiv die Signatur wie folgt gestaltet:</p>
<pre><code class="language-cpp">template&lt;class InputIterator&gt;
InputIterator my_find ( InputIterator first, InputIterator last, const typename std::iterator_traits&lt;InputIterator&gt;::value_type&amp; value )
</code></pre>
<p>Dann hab ich gesehen, dass die Standard-Lib <em>zwei</em> Template-Parameter benutzt (sprich der Typ von <code>value</code> ist völlig unabhängig von den Iteratoren):</p>
<pre><code class="language-cpp">template&lt;class InputIterator, class T&gt;
InputIterator find ( InputIterator first, InputIterator last, const T&amp; value )
{
    for ( ;first!=last; first++) if ( *first==value ) break;
    return first;
}
</code></pre>
<p>Was sind die Vor- und Nachteile der einzelnen Varianten? Bestimmt hab ich bei meiner irgendeinen Denkfehler <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2217963</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2217963</guid><dc:creator><![CDATA[Bloops]]></dc:creator><pubDate>Fri, 01 Jun 2012 16:12:48 GMT</pubDate></item><item><title><![CDATA[Reply to std::find-Signatur on Thu, 31 May 2012 20:53:49 GMT]]></title><description><![CDATA[<p>Bei deiner Variante muss der Typ von value direkt dem value_type des Iterators entsprechen, oder darin umwandelbar sein. Außerdem müssen entsprechende std::IteratorTraits existieren. Bei der Standard Variante muss der Typ von value lediglich mit *iterator vergleichbar sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2217965</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2217965</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Thu, 31 May 2012 20:53:49 GMT</pubDate></item><item><title><![CDATA[Reply to std::find-Signatur on Thu, 31 May 2012 20:57:40 GMT]]></title><description><![CDATA[<p>Hi dot, danke für die Antwort. Das stimmt wohl. Ist für meine Funktion aber immer gegeben. <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>
<p>Geht das mit der <code>const</code> -Referenz so, wie ich das gemacht habe, oder muss ich das über <code>std::add_const</code> machen (z. B. falls <code>value_type</code> bereits const ist)?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2217966</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2217966</guid><dc:creator><![CDATA[Bloops]]></dc:creator><pubDate>Thu, 31 May 2012 20:57:40 GMT</pubDate></item><item><title><![CDATA[Reply to std::find-Signatur on Thu, 31 May 2012 21:04:24 GMT]]></title><description><![CDATA[<p>Das geht so</p>
<p>Bloops schrieb:</p>
<blockquote>
<p>Hi dot, danke für die Antwort. Das stimmt wohl. Ist für meine Funktion aber immer gegeben. <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>
</blockquote>
<p>Die Frage sollte aber nicht sein was in der Regel immer gegeben ist, sondern was rein logisch gesehen das Requirement an den Typ ist und nicht mehr und nicht weniger <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>Und für find() wäre das wohl Vergleichbarkeit und nicht Umwandelbarkeit...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2217967</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2217967</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Thu, 31 May 2012 21:04:24 GMT</pubDate></item></channel></rss>