<?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[Mittelwertfunktion für maps]]></title><description><![CDATA[<p>Juten tag und frohes neues Jahr.<br />
Ich wollt euch mal um Kommentare und Verbesserungsvorschläge zu folgender kleiner Funktion bitten (vor allem Zwecks Verbesserung meines Stils...)</p>
<pre><code class="language-cpp">template &lt;class Key, class T&gt;
T average(Key kfirst, Key klast, const std::map&lt;Key, T&gt;&amp; where)

  /**********************************
   *
   * Bildet den Mittelwert vom Typ T aller Werte aus where, 
   * deren keys sich zwischen kfirst und klast befinden
   * Als Vergleichsoperator wird 
   * std::map&lt;Key, T&gt;::where.key_comp() benutzt
   *
   * @requires:
   * T() defined (standard constructor)
   * T operator+= (T)  defined
   * T operator/ (T, int)  defined
   *
   **********************************/

  {
  int i = 0;
  T result = T();
  for (typename std::map&lt;Key, T&gt;::const_iterator it = where.begin(); it != where.end(); it++)
    if (where.key_comp()(kfirst, it-&gt;first) &amp;&amp; where.key_comp()(it-&gt;first, klast))
      {
      i++;
      result += it-&gt;second;
      }
  if (i != 0)
    return result/i;
  return result;
  }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/133205/mittelwertfunktion-für-maps</link><generator>RSS for Node</generator><lastBuildDate>Thu, 27 Aug 2026 19:04:48 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/133205.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 16 Jan 2006 08:29:30 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Mittelwertfunktion für maps on Mon, 16 Jan 2006 08:29:30 GMT]]></title><description><![CDATA[<p>Juten tag und frohes neues Jahr.<br />
Ich wollt euch mal um Kommentare und Verbesserungsvorschläge zu folgender kleiner Funktion bitten (vor allem Zwecks Verbesserung meines Stils...)</p>
<pre><code class="language-cpp">template &lt;class Key, class T&gt;
T average(Key kfirst, Key klast, const std::map&lt;Key, T&gt;&amp; where)

  /**********************************
   *
   * Bildet den Mittelwert vom Typ T aller Werte aus where, 
   * deren keys sich zwischen kfirst und klast befinden
   * Als Vergleichsoperator wird 
   * std::map&lt;Key, T&gt;::where.key_comp() benutzt
   *
   * @requires:
   * T() defined (standard constructor)
   * T operator+= (T)  defined
   * T operator/ (T, int)  defined
   *
   **********************************/

  {
  int i = 0;
  T result = T();
  for (typename std::map&lt;Key, T&gt;::const_iterator it = where.begin(); it != where.end(); it++)
    if (where.key_comp()(kfirst, it-&gt;first) &amp;&amp; where.key_comp()(it-&gt;first, klast))
      {
      i++;
      result += it-&gt;second;
      }
  if (i != 0)
    return result/i;
  return result;
  }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/967697</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/967697</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 16 Jan 2006 08:29:30 GMT</pubDate></item><item><title><![CDATA[Reply to Mittelwertfunktion für maps on Mon, 16 Jan 2006 08:35:11 GMT]]></title><description><![CDATA[<p>Ist etwas umständlich, finde ich. In einer map stehen die Werte geordnet drin, also kannst du gleich deinen Suchbereich einschränken auf where.lower_bound(kfirst) bis where.lower_bound(klast).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/967700</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/967700</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 16 Jan 2006 08:35:11 GMT</pubDate></item><item><title><![CDATA[Reply to Mittelwertfunktion für maps on Mon, 16 Jan 2006 09:09:31 GMT]]></title><description><![CDATA[<p>also reicht folgendes:</p>
<pre><code class="language-cpp">{
  int i = 0;
  T result = T();
  for (typename std::map&lt;Key, T&gt;::const_iterator it = where.lower_bound(kfirst); it != where.lower_bound(klast); it++)
    {
    i++;
    result += it-&gt;second;
    }
  if (i != 0)
    return result/i;
  return result;
  }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/967738</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/967738</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 16 Jan 2006 09:09:31 GMT</pubDate></item><item><title><![CDATA[Reply to Mittelwertfunktion für maps on Mon, 16 Jan 2006 09:11:52 GMT]]></title><description><![CDATA[<p>Abgesehen davon, daß du den Methodennamen richtig schreiben solltest, ja.</p>
<p>Anmerkung: Die Schleife bildet den Mittelwert aller Elemente &gt;=kfirst und &lt;klast - wenn das nicht korrekt ist, mußt du die Randwerte der Schleife eventuell nachbessern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/967743</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/967743</guid><dc:creator><![CDATA[CStoll (off)]]></dc:creator><pubDate>Mon, 16 Jan 2006 09:11:52 GMT</pubDate></item></channel></rss>