<?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[Vektor als Parameter für eine Funktion]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;vector&gt;

using namespace std;

//Funktion zum Erstellen des Vektors.
vector&lt;int&gt; VektorErstellen();
vector&lt;int&gt; VektorErstellen()
{
  vector&lt;int&gt; myvector;
  return myvector;
}

//Funktion, um einen Wert im Vektor speichern zu können
//Übergabe erfolgt per Referenz
void test(vector&lt;int&gt;&amp;myvector,int &amp;a);
void test(vector&lt;int&gt;&amp;myvector,int &amp;a)
{
  myvector.push_back (a);
}

int main()
{
    int a=0;
    cin&gt;&gt;a;
    test(VektorErstellen(),a);
    return 0;
}
</code></pre>
<p>Wollte ganz gerne eine Funktion, die einen Vektor erstellt, als Parameter für eine andere Funktion verwenden. Leider läßt sich der Code nicht kompilieren.<br />
Ist eine Funktion als Parameter nicht zulässig oder gibt es da irgendeinen Kniff, wie es doch geht?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/293371/vektor-als-parameter-für-eine-funktion</link><generator>RSS for Node</generator><lastBuildDate>Sun, 16 Aug 2026 09:58:07 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/293371.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 01 Oct 2011 18:05:03 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Vektor als Parameter für eine Funktion on Sat, 01 Oct 2011 18:07:11 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;vector&gt;

using namespace std;

//Funktion zum Erstellen des Vektors.
vector&lt;int&gt; VektorErstellen();
vector&lt;int&gt; VektorErstellen()
{
  vector&lt;int&gt; myvector;
  return myvector;
}

//Funktion, um einen Wert im Vektor speichern zu können
//Übergabe erfolgt per Referenz
void test(vector&lt;int&gt;&amp;myvector,int &amp;a);
void test(vector&lt;int&gt;&amp;myvector,int &amp;a)
{
  myvector.push_back (a);
}

int main()
{
    int a=0;
    cin&gt;&gt;a;
    test(VektorErstellen(),a);
    return 0;
}
</code></pre>
<p>Wollte ganz gerne eine Funktion, die einen Vektor erstellt, als Parameter für eine andere Funktion verwenden. Leider läßt sich der Code nicht kompilieren.<br />
Ist eine Funktion als Parameter nicht zulässig oder gibt es da irgendeinen Kniff, wie es doch geht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2125914</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2125914</guid><dc:creator><![CDATA[redrew99]]></dc:creator><pubDate>Sat, 01 Oct 2011 18:07:11 GMT</pubDate></item><item><title><![CDATA[Reply to Vektor als Parameter für eine Funktion on Sat, 01 Oct 2011 18:10:02 GMT]]></title><description><![CDATA[<p>VektorErstellen, so wie du es geschrieben hast, gibt einen temporären Wert zurück. Solche Werte kann man nicht verändern. test, so wie du es geschrieben hast, zeigt an, dass es einen vector&lt;int&gt; möchte und diesen verändern möchte. Das passt nicht zusammen. Was würdest du dir denn vorstellen, wo das a hinterher landet?</p>
<p>Da dies bloß ein Beispiel ohne Sinn ist, kann man keine geeignete Korrektur vorschlagen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2125916</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2125916</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sat, 01 Oct 2011 18:10:02 GMT</pubDate></item><item><title><![CDATA[Reply to Vektor als Parameter für eine Funktion on Sat, 01 Oct 2011 18:33:26 GMT]]></title><description><![CDATA[<p>Die Funktion VektorErstellen soll einen Vektor erstellen und ihn zurückgeben(return myvector).</p>
<p>Die Funktion test soll einen Wert (hier a) in diesem Vektor speichern.</p>
<p>Wenn ich den Vektor direkt in der main() erstelle und als Parameter übergebe, funktioniert das einwandfrei. Also z.B.:</p>
<pre><code class="language-cpp">int main()
{
    int a=0;
    cin&gt;&gt;a;
    vector&lt;int&gt; myvector;
    test(myvector,a);
    return 0;
}
</code></pre>
<p>Der Sinn soll darin liegen, per Funktion beliebig einen Vektor erstellen und damit arbeiten zu können.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2125919</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2125919</guid><dc:creator><![CDATA[redrew99]]></dc:creator><pubDate>Sat, 01 Oct 2011 18:33:26 GMT</pubDate></item><item><title><![CDATA[Reply to Vektor als Parameter für eine Funktion on Sat, 01 Oct 2011 18:54:18 GMT]]></title><description><![CDATA[<p>Bei deinem nicht funktionierenden Beispiel: Angenommen es würde funktionieren. Und wie würdest du mit dem erstellten und gefüllten Vector weiterarbeiten? Fällt die was auf?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2125928</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2125928</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sat, 01 Oct 2011 18:54:18 GMT</pubDate></item><item><title><![CDATA[Reply to Vektor als Parameter für eine Funktion on Sat, 01 Oct 2011 19:03:03 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Bei deinem nicht funktionierenden Beispiel: Angenommen es würde funktionieren. Und wie würdest du mit dem erstellten und gefüllten Vector weiterarbeiten? Fällt die was auf?</p>
</blockquote>
<p>Man könnte den Vektor zum Beispiel ausgeben oder die Werte in eine Datei schreiben.</p>
<p>Du willst vermutlich darauf hinaus, daß der Speicherbereich des Vektors, sobald der Gültigkeitsbereich der Funktion verlassen wird, freigegeben wird?<br />
Wenn man den Vektor nicht mehr braucht, ist das doch sinnvoll, oder nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2125929</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2125929</guid><dc:creator><![CDATA[redrew99]]></dc:creator><pubDate>Sat, 01 Oct 2011 19:03:03 GMT</pubDate></item><item><title><![CDATA[Reply to Vektor als Parameter für eine Funktion on Sat, 01 Oct 2011 19:23:36 GMT]]></title><description><![CDATA[<p>redrew99 schrieb:</p>
<blockquote>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Bei deinem nicht funktionierenden Beispiel: Angenommen es würde funktionieren. Und wie würdest du mit dem erstellten und gefüllten Vector weiterarbeiten? Fällt die was auf?</p>
</blockquote>
<p>Man könnte den Vektor zum Beispiel ausgeben oder die Werte in eine Datei schreiben.</p>
</blockquote>
<p>Wie soll das gehen? Mach doch mal vor, wie du dir das vorstellst.</p>
<blockquote>
<p>Du willst vermutlich darauf hinaus, daß der Speicherbereich des Vektors, sobald der Gültigkeitsbereich der Funktion verlassen wird, freigegeben wird?</p>
</blockquote>
<p>Nein. Ich will auf den Unterschied zwischen R-Values und L-Values hinaus. Der Vector aus deiner Funktion wird sowieso kopiert, so wie du es jetzt hast.</p>
<blockquote>
<p>Wenn man den Vektor nicht mehr braucht, ist das doch sinnvoll, oder nicht?</p>
</blockquote>
<p>Was genau soll sinnvoll sein?</p>
<p>Kann's sein, dass du in deinem Beispielprogramm ein bisschen durcheinander gekommen bist, was eine Referenz sein soll und was nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2125936</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2125936</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sat, 01 Oct 2011 19:23:36 GMT</pubDate></item><item><title><![CDATA[Reply to Vektor als Parameter für eine Funktion on Sat, 01 Oct 2011 20:38:54 GMT]]></title><description><![CDATA[<blockquote>
<p>Nein. Ich will auf den Unterschied zwischen R-Values und L-Values hinaus. Der Vector aus deiner Funktion wird sowieso kopiert, so wie du es jetzt hast.</p>
</blockquote>
<p>Ok. Jetzt ist der Groschen gefallen.<br />
Eine Referenz auf eine Funktion, die einen Wert zurückgibt, ist unlogisch.<br />
Richtig wäre dann also</p>
<pre><code class="language-cpp">void test(vector&lt;int&gt;myvector,int &amp;a);
</code></pre>
<blockquote>
<p>Was genau soll sinnvoll sein?</p>
</blockquote>
<p>Naja, wenn ein Vektor nicht mehr benötigt wird, weil der Inhalt z.B. in eine Datei geschrieben wurde, warum soll dann der belegte Speicherbereich nicht freigegeben werden.</p>
<blockquote>
<p>Wie soll das gehen? Mach doch mal vor, wie du dir das vorstellst.</p>
</blockquote>
<pre><code class="language-cpp">void test(vector&lt;int&gt;myvector,int &amp;a);
void test(vector&lt;int&gt;myvector,int &amp;a)
{
  myvector.push_back (a);
  cout&lt;&lt;myvector[0];           //Hier z.B. Ausgabe des Vektors,alternativ Speicherung in einer Datei.
}
</code></pre>
<blockquote>
<p>Kann's sein, dass du in deinem Beispielprogramm ein bisschen durcheinander gekommen bist, was eine Referenz sein soll und was nicht?</p>
</blockquote>
<p>Vermutlich <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="🙄"
    /> . Man verzettelt sich schneller, als man denkt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2125958</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2125958</guid><dc:creator><![CDATA[redrew99]]></dc:creator><pubDate>Sat, 01 Oct 2011 20:38:54 GMT</pubDate></item><item><title><![CDATA[Reply to Vektor als Parameter für eine Funktion on Sat, 01 Oct 2011 20:51:59 GMT]]></title><description><![CDATA[<p>redrew99 schrieb:</p>
<blockquote>
<pre><code class="language-cpp">vector&lt;int&gt;myvector
</code></pre>
</blockquote>
<p>Ist aber keine Referenz auf eine Funktion, sondern ein normaler vector&lt;int&gt; Parameter, der kopiert wird.</p>
<p>Eine Referenz auf ein Funktion, die std::vector&lt;int&gt; zurückgibt, sieht so aus:</p>
<pre><code class="language-cpp">std::vector&lt;int&gt; (&amp;foo) ()
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2125963</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2125963</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Sat, 01 Oct 2011 20:51:59 GMT</pubDate></item><item><title><![CDATA[Reply to Vektor als Parameter für eine Funktion on Sat, 01 Oct 2011 21:05:55 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Bei deinem nicht funktionierenden Beispiel: Angenommen es würde funktionieren. Und wie würdest du mit dem erstellten und gefüllten Vector weiterarbeiten? Fällt die was auf?</p>
</blockquote>
<p>LOL. <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/2125965</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2125965</guid><dc:creator><![CDATA[EOP]]></dc:creator><pubDate>Sat, 01 Oct 2011 21:05:55 GMT</pubDate></item><item><title><![CDATA[Reply to Vektor als Parameter für eine Funktion on Sat, 01 Oct 2011 21:10:21 GMT]]></title><description><![CDATA[<p>EOP schrieb:</p>
<blockquote>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Bei deinem nicht funktionierenden Beispiel: Angenommen es würde funktionieren. Und wie würdest du mit dem erstellten und gefüllten Vector weiterarbeiten? Fällt die was auf?</p>
</blockquote>
<p>LOL. <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>314159265358979 schrieb:</p>
<blockquote>
<p>Eine Referenz auf ein Funktion, die std::vector&lt;int&gt; zurückgibt, sieht so aus:</p>
<pre><code class="language-cpp">std::vector&lt;int&gt; (&amp;foo) ()
</code></pre>
</blockquote>
<p>Bist du dir da sicher? <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/2125966</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2125966</guid><dc:creator><![CDATA[EOP]]></dc:creator><pubDate>Sat, 01 Oct 2011 21:10:21 GMT</pubDate></item><item><title><![CDATA[Reply to Vektor als Parameter für eine Funktion on Sat, 01 Oct 2011 21:12:38 GMT]]></title><description><![CDATA[<p>Ja, bin ich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2125967</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2125967</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Sat, 01 Oct 2011 21:12:38 GMT</pubDate></item><item><title><![CDATA[Reply to Vektor als Parameter für eine Funktion on Sat, 01 Oct 2011 21:23:17 GMT]]></title><description><![CDATA[<p>LOL.</p>
<blockquote>
<p>Ok. Jetzt ist der Groschen gefallen.</p>
</blockquote>
<p>So kann man sich täuschen.</p>
<p>Und wie initialisiere ich dann deinen Prototypen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2125969</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2125969</guid><dc:creator><![CDATA[EOP]]></dc:creator><pubDate>Sat, 01 Oct 2011 21:23:17 GMT</pubDate></item><item><title><![CDATA[Reply to Vektor als Parameter für eine Funktion on Sat, 01 Oct 2011 21:26:52 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">std::vector&lt;int&gt; foo();
std::vector&lt;int&gt; (&amp;bar) () = foo;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2125971</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2125971</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Sat, 01 Oct 2011 21:26:52 GMT</pubDate></item><item><title><![CDATA[Reply to Vektor als Parameter für eine Funktion on Sat, 01 Oct 2011 21:55:52 GMT]]></title><description><![CDATA[<p>So, und jetzt hat der OP evtl. auch noch was gelernt. <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>N schönes Wochenende noch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2125980</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2125980</guid><dc:creator><![CDATA[EOP]]></dc:creator><pubDate>Sat, 01 Oct 2011 21:55:52 GMT</pubDate></item></channel></rss>