<?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[Negative Zahlen abiehen??]]></title><description><![CDATA[<p>Hallo zusammen, ich wollte mal wissen, warum der folgende Code nicht funktioniert:</p>
<pre><code class="language-cpp">inline void input(vector&lt;double&gt; &amp;myvector, double position, double in = 0.0)
{
    if (position &gt;= myvector.size())
    {
        position -= (myvector.size() - 1);    //position = 10000 und die Größe ist 0
        for(; position &gt; 1; position--) myvector.push_back(0);//so, und jetzt steht halt -452300.0000 drin oder so ähnlich
    }
    myvector.push_back(in);
}
</code></pre>
<p>Dieser funktioniert aber:</p>
<pre><code class="language-cpp">inline void input(vector&lt;double&gt; &amp;myvector, double position, double in = 0.0)
{
    if (position &gt;= myvector.size())
    {
        position -= (myvector.size());    //so, jetzt einzeln
        position++;
        for(; position &gt; 1; position--) myvector.push_back(0);
    }
    myvector.push_back(in);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/255024/negative-zahlen-abiehen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 12 Sep 2026 06:28:58 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/255024.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 24 Nov 2009 15:54:17 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Negative Zahlen abiehen?? on Tue, 24 Nov 2009 15:55:51 GMT]]></title><description><![CDATA[<p>Hallo zusammen, ich wollte mal wissen, warum der folgende Code nicht funktioniert:</p>
<pre><code class="language-cpp">inline void input(vector&lt;double&gt; &amp;myvector, double position, double in = 0.0)
{
    if (position &gt;= myvector.size())
    {
        position -= (myvector.size() - 1);    //position = 10000 und die Größe ist 0
        for(; position &gt; 1; position--) myvector.push_back(0);//so, und jetzt steht halt -452300.0000 drin oder so ähnlich
    }
    myvector.push_back(in);
}
</code></pre>
<p>Dieser funktioniert aber:</p>
<pre><code class="language-cpp">inline void input(vector&lt;double&gt; &amp;myvector, double position, double in = 0.0)
{
    if (position &gt;= myvector.size())
    {
        position -= (myvector.size());    //so, jetzt einzeln
        position++;
        for(; position &gt; 1; position--) myvector.push_back(0);
    }
    myvector.push_back(in);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1812959</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1812959</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Tue, 24 Nov 2009 15:55:51 GMT</pubDate></item><item><title><![CDATA[Reply to Negative Zahlen abiehen?? on Tue, 24 Nov 2009 15:59:29 GMT]]></title><description><![CDATA[<p>vector::size() liefer einen Wert mit Typ unsigned zurueck. Was passiert wenn du davon 1 abziehst, wenn der Wert 0 ist?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1812966</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1812966</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Tue, 24 Nov 2009 15:59:29 GMT</pubDate></item><item><title><![CDATA[Reply to Negative Zahlen abiehen?? on Tue, 24 Nov 2009 16:03:27 GMT]]></title><description><![CDATA[<p>vector::size() ist vom Typ size_t, was in der Regel ein unsigned integer Typ ist. Und da du im ersten Programm (size()-1) in Klammern stehen hast, wird diese Rechnung zuerst ausgeführt und zwar mit unsigned integer Arithmetik. Und da ist 0-1 eben nicht -1 sondern das Maximum dieses Datentyps.</p>
<p>P.S.: double als Positionsangabe für einen Vector? Möglicherweise hast du gute Gründe, sieht aber schon irgendwie nach komischem Design aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1812968</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1812968</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 24 Nov 2009 16:03:27 GMT</pubDate></item><item><title><![CDATA[Reply to Negative Zahlen abiehen?? on Tue, 24 Nov 2009 16:01:23 GMT]]></title><description><![CDATA[<p>knivil schrieb:</p>
<blockquote>
<p>vector::size() liefer einen Wert mit Typ unsigned zurueck. Was passiert wenn du davon 1 abziehst, wenn der Wert 0 ist?</p>
</blockquote>
<p>Dann steht 11111111111111... drin <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
Danke!</p>
<p>So funktionierts jetzt auch ein bisschen eleganter:</p>
<pre><code class="language-cpp">position -= ((signed)myvector.size() - 1);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1812969</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1812969</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Tue, 24 Nov 2009 16:01:23 GMT</pubDate></item><item><title><![CDATA[Reply to Negative Zahlen abiehen?? on Tue, 24 Nov 2009 16:05:09 GMT]]></title><description><![CDATA[<p>wxSkip schrieb:</p>
<blockquote>
<p>So funktionierts jetzt auch ein bisschen eleganter:</p>
<pre><code class="language-cpp">position -= ((signed)myvector.size() - 1);
</code></pre>
</blockquote>
<p>Da finde ich deine zweite Variante aber Eleganter. Hier machst du nämlich Fehler, falls der Vector mehr Elemente enthält als in signed passen. Bei deiner anderen Variante ist immer alles richtig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1812973</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1812973</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 24 Nov 2009 16:05:09 GMT</pubDate></item><item><title><![CDATA[Reply to Negative Zahlen abiehen?? on Tue, 24 Nov 2009 16:26:31 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>wxSkip schrieb:</p>
<blockquote>
<p>So funktionierts jetzt auch ein bisschen eleganter:</p>
<pre><code class="language-cpp">position -= ((signed)myvector.size() - 1);
</code></pre>
</blockquote>
<p>Da finde ich deine zweite Variante aber Eleganter. Hier machst du nämlich Fehler, falls der Vector mehr Elemente enthält als in signed passen. Bei deiner anderen Variante ist immer alles richtig.</p>
</blockquote>
<p>Stimmt, aber wenn das der Fall ist, dann enthält position noch mehr Elemente als myvector.size() (sonst wäre die if-Bedingung false) und das geht nicht, weil position unsigned ist <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1812989</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1812989</guid><dc:creator><![CDATA[wxSkip]]></dc:creator><pubDate>Tue, 24 Nov 2009 16:26:31 GMT</pubDate></item></channel></rss>