<?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[mehrere Rückgabewerte für Funktionen]]></title><description><![CDATA[<p>Hallo liebe Kollegen!</p>
<p>Sagt mal kann man eine Funktion schreiben, die mehrere Rückgabewerte hat?</p>
<p>wenn man z.B. auf mehreren Eingabevectoren rechnet, diese sich alle verändern und man diese alle wieder zurückgeben will?</p>
<p>z.B.</p>
<pre><code class="language-cpp">vector &lt;int&gt; berechnung(vector &lt;int&gt; a, vector &lt;int&gt; b) {
    ...
    ca. 200 Zeilen Berechnung  ;) 
    ...

    return a;    
    // hier sollte jetzt auch noch b zurückgegeben werden...
}
</code></pre>
<p>Danke für euere Ideen... <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/topic/220667/mehrere-rückgabewerte-für-funktionen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 15 Sep 2026 22:42:18 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/220667.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 19 Aug 2008 13:39:10 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to mehrere Rückgabewerte für Funktionen on Tue, 19 Aug 2008 13:39:37 GMT]]></title><description><![CDATA[<p>Hallo liebe Kollegen!</p>
<p>Sagt mal kann man eine Funktion schreiben, die mehrere Rückgabewerte hat?</p>
<p>wenn man z.B. auf mehreren Eingabevectoren rechnet, diese sich alle verändern und man diese alle wieder zurückgeben will?</p>
<p>z.B.</p>
<pre><code class="language-cpp">vector &lt;int&gt; berechnung(vector &lt;int&gt; a, vector &lt;int&gt; b) {
    ...
    ca. 200 Zeilen Berechnung  ;) 
    ...

    return a;    
    // hier sollte jetzt auch noch b zurückgegeben werden...
}
</code></pre>
<p>Danke für euere Ideen... <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/1567583</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1567583</guid><dc:creator><![CDATA[free_style]]></dc:creator><pubDate>Tue, 19 Aug 2008 13:39:37 GMT</pubDate></item><item><title><![CDATA[Reply to mehrere Rückgabewerte für Funktionen on Tue, 19 Aug 2008 13:58:05 GMT]]></title><description><![CDATA[<p>Hi freestyle,</p>
<p>Du kannst besser auf Referenzen zurückgreifen und damit direkt auf den vector-Objekten arbeiten:</p>
<pre><code class="language-cpp">void berechnung(vector&lt;int&gt;&amp; a, vector&lt;int&gt;&amp; b) {
    ...
    ca. 200 Zeilen Berechnung  -&gt; ändert direkt mainA und mainB
    ...
}

int main() {
   vector&lt;int&gt; mainA, mainB;
   // irgendwie füllen ...
   berechnung(mainA, mainB);
...
</code></pre>
<p>hier kannst Du direkt auf a und b die Veränderungen machen.<br />
... und wenn Du noch &quot;unveränderte Kopien&quot; brauchst, machst Du die einfach vorher.</p>
<p>Alternativ kannst Du natürlich auch mit einem pair arbeiten:</p>
<pre><code class="language-cpp">#include &lt;utility&gt;

pair&lt;vector&lt;int&gt;, vector&lt;int&gt; &gt; berechnung(vector&lt;int&gt; const&amp; a, vector&lt;int&gt; const&amp; b) {
   pair&lt;vector&lt;int&gt;, vector&lt;int&gt; &gt; ret = make_pair(a, b);

   // ... und dann arbeitest Du bei Deiner Berechnung auf ret.first 
   //     und ret.second (statt auf a und b)
    ...
    ca. 200 Zeilen Berechnung  ;) 
    ...

   return ret;
}
</code></pre>
<p>Allerdings wird da unnötig viel kopiert (erst a &amp; b nach ret; dann der Rückgabewert)... aber immerhin nicht öfter als bei Deinem Vorschlag.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1567598</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1567598</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 19 Aug 2008 13:58:05 GMT</pubDate></item><item><title><![CDATA[Reply to mehrere Rückgabewerte für Funktionen on Tue, 19 Aug 2008 14:27:13 GMT]]></title><description><![CDATA[<p>ahh super, das mit den referenzen kannte ich noch nicht.</p>
<p>Nur noch mal im Klartext:</p>
<p>Ich lege mir also in der Main die Objekte z.B. int a an und greife dann in der funktion mittels &amp;a direkt auf das Objekt zu, welches dann seine Werte verändert?</p>
<p>Funktioniert das auch, wenn das Objekt ein struct mit Unterobjekten ist, wie z.B.:</p>
<pre><code class="language-cpp">struct teil{
    double a};

void struct berechnen(struct teil &amp;teil_eins){
     teil_eins.a = teil_eins.a * 2   
};

main{

teil eins;
eins.a = 5;

berechnen(eins);
</code></pre>
<p>--&gt; sollte dann 10 rauskommen oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1567631</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1567631</guid><dc:creator><![CDATA[free_style]]></dc:creator><pubDate>Tue, 19 Aug 2008 14:27:13 GMT</pubDate></item><item><title><![CDATA[Reply to mehrere Rückgabewerte für Funktionen on Tue, 19 Aug 2008 14:31:23 GMT]]></title><description><![CDATA[<p>jupp</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1567639</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1567639</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Tue, 19 Aug 2008 14:31:23 GMT</pubDate></item><item><title><![CDATA[Reply to mehrere Rückgabewerte für Funktionen on Tue, 19 Aug 2008 14:34:38 GMT]]></title><description><![CDATA[<p>super!!</p>
<p>jungz und mädelz ihr seid einfach klasse <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>Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1567643</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1567643</guid><dc:creator><![CDATA[free_style]]></dc:creator><pubDate>Tue, 19 Aug 2008 14:34:38 GMT</pubDate></item><item><title><![CDATA[Reply to mehrere Rückgabewerte für Funktionen on Tue, 19 Aug 2008 14:37:15 GMT]]></title><description><![CDATA[<p>free_style schrieb:</p>
<blockquote>
<pre><code class="language-cpp">void struct berechnen
</code></pre>
</blockquote>
<p>Was ist das für ein Rückgabetyp?</p>
<p>free_style schrieb:</p>
<blockquote>
<pre><code class="language-cpp">(struct teil &amp;teil_eins){
</code></pre>
</blockquote>
<p><code>struct</code> in diesem Kontext kann man in C++ weglassen, <code>teil</code> ist hier ein eigenständiger Datentyp.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1567646</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1567646</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Tue, 19 Aug 2008 14:37:15 GMT</pubDate></item><item><title><![CDATA[Reply to mehrere Rückgabewerte für Funktionen on Tue, 19 Aug 2008 14:44:10 GMT]]></title><description><![CDATA[<p><a href="http://de.wikipedia.org/wiki/Call_by_reference" rel="nofollow">http://de.wikipedia.org/wiki/Call_by_reference</a><br />
<a href="http://de.wikipedia.org/wiki/Call_by_value" rel="nofollow">http://de.wikipedia.org/wiki/Call_by_value</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1567653</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1567653</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Tue, 19 Aug 2008 14:44:10 GMT</pubDate></item><item><title><![CDATA[Reply to mehrere Rückgabewerte für Funktionen on Tue, 19 Aug 2008 15:10:54 GMT]]></title><description><![CDATA[<blockquote>
<p>struct in diesem Kontext kann man in C++ weglassen, teil ist hier ein eigenständiger Datentyp.</p>
</blockquote>
<p>Er kommt whohl von C.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1567678</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1567678</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Tue, 19 Aug 2008 15:10:54 GMT</pubDate></item><item><title><![CDATA[Reply to mehrere Rückgabewerte für Funktionen on Tue, 22 Sep 2009 16:56:54 GMT]]></title><description><![CDATA[<p>kann mir da jemand ein noch klareres Beispiel geben, ich kann nicht ganz glauben, dass das gehen soll.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1782700</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1782700</guid><dc:creator><![CDATA[5cript]]></dc:creator><pubDate>Tue, 22 Sep 2009 16:56:54 GMT</pubDate></item><item><title><![CDATA[Reply to mehrere Rückgabewerte für Funktionen on Tue, 22 Sep 2009 18:08:35 GMT]]></title><description><![CDATA[<p>Tim06TR schrieb:</p>
<blockquote>
<p>kann mir da jemand ein noch klareres Beispiel geben, ich kann nicht ganz glauben, dass das gehen soll.</p>
</blockquote>
<p>Was genau? <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="😕"
    /> Ein struct als Rückgabe? Call-by-reference? std::pair? Du solltest deutlicher werden...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1782721</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1782721</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Tue, 22 Sep 2009 18:08:35 GMT</pubDate></item><item><title><![CDATA[Reply to mehrere Rückgabewerte für Funktionen on Tue, 22 Sep 2009 20:01:17 GMT]]></title><description><![CDATA[<p>Tim06TR schrieb:</p>
<blockquote>
<p>kann mir da jemand ein noch klareres Beispiel geben, ich kann nicht ganz glauben, dass das gehen soll.</p>
</blockquote>
<p>1. Keine alten Threads unnötigerweise wiederbeleben.<br />
2. Sich verständlich ausdrücken.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1782778</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1782778</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Tue, 22 Sep 2009 20:01:17 GMT</pubDate></item></channel></rss>