<?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[Überprüfen, ob ein Zahlwert in einer Spanne von Werten enthalten ist]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich suche nach einem Befehl, den ich aus Ruby kenne und jetzt gerne in C++ benutzen würde. Weiß' aber leider nicht wie das in C++ aussehen müsste <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Vielleicht weiß jemand von euch die Lösung.</p>
<p>In Ruby sieht das ganze so aus:</p>
<pre><code># Check aller X-Koordianten
x=0
while x&lt;=60  
check=&quot;#{@x_monster+x}&quot;.to_i
if (@x_osito..@x_osito+40).include? check 
  collision_monster_x=true
end
x+=1
end
</code></pre>
<p>Also bräuchte zum Einen einen Befehl um eine Spanne von Zahlen festzulegen wie<br />
&quot;40..50&quot;.<br />
Und dann einen Befehl um zu überprüfen, ob eine andere Zahl sich in dieser Spanne befindet...<br />
in Ruby: 40..50.include? 42<br />
=&gt; true<br />
Und in C++? <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="😕"
    /><br />
Jemand eine Idee?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/253030/überprüfen-ob-ein-zahlwert-in-einer-spanne-von-werten-enthalten-ist</link><generator>RSS for Node</generator><lastBuildDate>Mon, 14 Sep 2026 02:10:08 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/253030.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 27 Oct 2009 20:34:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Überprüfen, ob ein Zahlwert in einer Spanne von Werten enthalten ist on Tue, 27 Oct 2009 20:34:16 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich suche nach einem Befehl, den ich aus Ruby kenne und jetzt gerne in C++ benutzen würde. Weiß' aber leider nicht wie das in C++ aussehen müsste <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Vielleicht weiß jemand von euch die Lösung.</p>
<p>In Ruby sieht das ganze so aus:</p>
<pre><code># Check aller X-Koordianten
x=0
while x&lt;=60  
check=&quot;#{@x_monster+x}&quot;.to_i
if (@x_osito..@x_osito+40).include? check 
  collision_monster_x=true
end
x+=1
end
</code></pre>
<p>Also bräuchte zum Einen einen Befehl um eine Spanne von Zahlen festzulegen wie<br />
&quot;40..50&quot;.<br />
Und dann einen Befehl um zu überprüfen, ob eine andere Zahl sich in dieser Spanne befindet...<br />
in Ruby: 40..50.include? 42<br />
=&gt; true<br />
Und in C++? <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="😕"
    /><br />
Jemand eine Idee?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1799338</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1799338</guid><dc:creator><![CDATA[Barcelona]]></dc:creator><pubDate>Tue, 27 Oct 2009 20:34:16 GMT</pubDate></item><item><title><![CDATA[Reply to Überprüfen, ob ein Zahlwert in einer Spanne von Werten enthalten ist on Tue, 27 Oct 2009 20:38:58 GMT]]></title><description><![CDATA[<p>Sowas?</p>
<pre><code class="language-cpp">bool is_inside(int lower, int upper, int value)
{
    return lower &lt;= value &amp;&amp; value &lt;= upper;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1799341</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1799341</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Tue, 27 Oct 2009 20:38:58 GMT</pubDate></item><item><title><![CDATA[Reply to Überprüfen, ob ein Zahlwert in einer Spanne von Werten enthalten ist on Tue, 27 Oct 2009 20:52:55 GMT]]></title><description><![CDATA[<p>Ich glaube ich reiche ein Proposal ein für einen neuen Operator. Ein <code>..-Operator</code> wäre, was solche Ranges anbelangt wirklich intuitiv. <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="🙂"
    /> (Eiffel hat den auch)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1799351</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1799351</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Tue, 27 Oct 2009 20:52:55 GMT</pubDate></item><item><title><![CDATA[Reply to Überprüfen, ob ein Zahlwert in einer Spanne von Werten enthalten ist on Tue, 27 Oct 2009 21:02:20 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Sowas?</p>
<pre><code class="language-cpp">bool is_inside(int lower, int upper, int value)
{
    return lower &lt;= value &amp;&amp; value &lt;= upper;
}
</code></pre>
</blockquote>
<p>Also muss ich dafür eine Extra-Funktion schreiben, richtig?<br />
Dachte es gäbe vielleicht auch sowas wie den &quot;..&quot;-Operator und include?<br />
in C++.</p>
<p>Danke jedenfalls für die Antworten! <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/1799357</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1799357</guid><dc:creator><![CDATA[Barcelona]]></dc:creator><pubDate>Tue, 27 Oct 2009 21:02:20 GMT</pubDate></item><item><title><![CDATA[Reply to Überprüfen, ob ein Zahlwert in einer Spanne von Werten enthalten ist on Tue, 27 Oct 2009 21:04:46 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>Ich glaube ich reiche ein Proposal ein für einen neuen Operator. Ein <code>..-Operator</code> wäre, was solche Ranges anbelangt wirklich intuitiv. <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="🙂"
    /> (Eiffel hat den auch)</p>
</blockquote>
<p>Haskell hat den auch, ist wirklich praktisch... So kann man zum Beispiel alle geraden Zahlen zwischen 1 und 9 auflisten: <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>
<pre><code>filter (\n -&gt; mod n 2 == 0) [1..9]
</code></pre>
<p>In C++ braucht man das wohl definitiv zu selten. Aber man kann sich ja eine Ganzzahl-Intervall-Klasse schreiben und alle möglichen Mengenoperationen überladen. Ist dann halt <code>Interval(a, b)</code> statt <code>a..b</code> , aber dafür geht es mit momentanen Mitteln.</p>
<p>Barcelona schrieb:</p>
<blockquote>
<p>Also muss ich dafür eine Extra-Funktion schreiben, richtig?<br />
Dachte es gäbe vielleicht auch sowas wie den &quot;..&quot;-Operator und include?<br />
in C++.</p>
</blockquote>
<p>Nein, C++ verfolgt andere Ansätze als Ruby. Aber du kannst dir die Funktionalität wie gesagt leicht mittels Klassen nachbilden, die Syntax kannst du jedoch nicht 1:1 übernehmen (solltest du im Übrigen auch nicht versuchen).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1799360</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1799360</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Tue, 27 Oct 2009 21:04:46 GMT</pubDate></item><item><title><![CDATA[Reply to Überprüfen, ob ein Zahlwert in einer Spanne von Werten enthalten ist on Tue, 27 Oct 2009 21:50:28 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>die Syntax kannst du jedoch nicht 1:1 übernehmen</p>
</blockquote>
<p>Aber mit ein bisschen Gefrickel fast:</p>
<pre><code class="language-cpp">struct range
{
    int lower, upper;
};

range operator +(int i, range r)
{
    r.lower = i;
    return r;
}

range operator +(range r, int i)
{
    r.upper = i;
    return r;
}

#define TO + range() +
</code></pre>
<p>Dann wäre der Operator nicht .. sonder TO. Wenn man noch entsprechende Member-Funktionen schreibt, kann man dann auch sowas machen wie if((1 TO 100).includes(42)) {...}</p>
<p>Möchte man das unbedingt auch noch anders haben, geht das natürlich auch:</p>
<pre><code class="language-cpp">bool operator &amp;(const range&amp; r, int i) // jeder andere von der Priorität passende Operator ginge auch
{
    return i &gt;= r.lower &amp;&amp; i &lt;= r.upper;
}

#define INCLUDES &amp;
</code></pre>
<p>Aufruf: if(1 TO 100 INCLUDES 42) {...}</p>
<p>Aber natürlich sollte sowas in der Praxis nicht verwendet werden (wird auch nicht gemacht).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1799393</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1799393</guid><dc:creator><![CDATA[ipsec]]></dc:creator><pubDate>Tue, 27 Oct 2009 21:50:28 GMT</pubDate></item><item><title><![CDATA[Reply to Überprüfen, ob ein Zahlwert in einer Spanne von Werten enthalten ist on Tue, 27 Oct 2009 21:53:27 GMT]]></title><description><![CDATA[<p>XMaster schrieb:</p>
<blockquote>
<p>Aufruf: if(1 TO 100 INCLUDES 42) {...}</p>
</blockquote>
<p>wobei zur not eine c++-ähnlichere syntax<br />
if(make_range(1,100).includes(42))<br />
auch denkbar wäre.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1799396</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1799396</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Tue, 27 Oct 2009 21:53:27 GMT</pubDate></item><item><title><![CDATA[Reply to Überprüfen, ob ein Zahlwert in einer Spanne von Werten enthalten ist on Tue, 27 Oct 2009 21:55:04 GMT]]></title><description><![CDATA[<p>Man könnte jetzt natürlich noch ein wenig mehr mit Makros arbeiten und dann hätten wir auch schon die schönen Punkte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1799398</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1799398</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Tue, 27 Oct 2009 21:55:04 GMT</pubDate></item><item><title><![CDATA[Reply to Überprüfen, ob ein Zahlwert in einer Spanne von Werten enthalten ist on Tue, 27 Oct 2009 23:00:21 GMT]]></title><description><![CDATA[<p>So ist es leider ziemlich lahm, ich hätte lieber Operator -&gt; genutzt. Aber das bringt nichts, weil man den Elementzugriffsoperator . nicht überladen darf. Und Operator=&gt; gibt's leider nicht. Darum 'nur' mit Kommaoperator. Namensraumauflösung :: wäre auch noch passend gewesen, aber das darf man auch nicht überladen. Verdammt, warum sind die ganzen cool aussehenden Operatoren verboten <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /> ?</p>
<pre><code class="language-cpp">template&lt;typename T&gt; class rangecheck
{
private:
 T value;
public:
 class range
 {
  private:
   T lower,upper;
   range(T l, T u):lower(l), upper(u){}
  public:
   bool includes(T t)
   {
    return lower &lt;= t &amp;&amp; t &lt;= upper;
   }
   friend class rangecheck&lt;T&gt;;
 };
 range operator,(rangecheck&lt;T&gt; upper)
 {
  return range(value,upper.value);
 }
 rangecheck(T t):value(t){}
};

int main(){
 typedef rangecheck&lt;int&gt; integer;
 integer a=5;
 integer b=10;
 std::cout &lt;&lt; (a,b).includes(8) &lt;&lt; std::endl &lt;&lt; (a,b).includes(11) &lt;&lt; std::endl;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1799422</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1799422</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 27 Oct 2009 23:00:21 GMT</pubDate></item><item><title><![CDATA[Reply to Überprüfen, ob ein Zahlwert in einer Spanne von Werten enthalten ist on Wed, 28 Oct 2009 08:59:10 GMT]]></title><description><![CDATA[<p>Wieso sollte man den Elementzugrifssoperator -&gt; nicht überladen dürfen? Sämtliche Iteratoren machen nichts anderes.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1799489</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1799489</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Wed, 28 Oct 2009 08:59:10 GMT</pubDate></item><item><title><![CDATA[Reply to Überprüfen, ob ein Zahlwert in einer Spanne von Werten enthalten ist on Wed, 28 Oct 2009 09:52:04 GMT]]></title><description><![CDATA[<p>DocShoe schrieb:</p>
<blockquote>
<p>Wieso sollte man den Elementzugrifssoperator -&gt; nicht überladen dürfen? Sämtliche Iteratoren machen nichts anderes.</p>
</blockquote>
<p>Lies nochmal genau: Man darf ihn überladen, es bringt aber nichts für diesen Fall, weil man den Memberzugriffsoperator . nicht überladen darf. Daher kann man die linke Seite von -&gt; nicht mit der rechten Seite von -&gt; in Verbindung bringen, denn -&gt; an sich hat nur die linke seite als Argument.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1799504</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1799504</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 28 Oct 2009 09:52:04 GMT</pubDate></item><item><title><![CDATA[Reply to Überprüfen, ob ein Zahlwert in einer Spanne von Werten enthalten ist on Wed, 28 Oct 2009 10:44:17 GMT]]></title><description><![CDATA[<p>Narf o.O</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1799540</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1799540</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Wed, 28 Oct 2009 10:44:17 GMT</pubDate></item></channel></rss>