<?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[Referenzparameter?]]></title><description><![CDATA[<p>Hallo!<br />
Ich habe mir sagen lassen, dass - wenn ich einen std::string an eine Funktion übergebe - ich Referenzparameter in Funktionen verwenden sollte, da das Kopieren von strings ja vergleichsweise lange dauert und bei Referenzen ja wegfällt.</p>
<p>In einem Algorithmus habe ich nun folgende Funktion verwendet</p>
<pre><code class="language-cpp">bool funktion(int x, int y)
</code></pre>
<p>Diese Funktion wird im Laufe des Algorithmus' häufig aufgerufen. Der Algorithmus läuft insgesamt ca. 14,9 sek.<br />
Wenn ich aber nun</p>
<pre><code class="language-cpp">bool funktion(int&amp; x, int&amp; y)
</code></pre>
<p>verwende, braucht der Algorithmus auf einmal 17sek.</p>
<p>Wieso sind bei int-Werten &quot;normale&quot; Funktionsparameter schneller als Referenzen? Müsste bei Referenzen nicht der Kopiervorgang umgangen werden und der Alogrithmus so schneller laufen?</p>
<p>Anmerkung: x und y werden durch die Funktion nicht geändert.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/233448/referenzparameter</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 21:59:44 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/233448.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 04 Feb 2009 19:58:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Referenzparameter? on Wed, 04 Feb 2009 19:58:00 GMT]]></title><description><![CDATA[<p>Hallo!<br />
Ich habe mir sagen lassen, dass - wenn ich einen std::string an eine Funktion übergebe - ich Referenzparameter in Funktionen verwenden sollte, da das Kopieren von strings ja vergleichsweise lange dauert und bei Referenzen ja wegfällt.</p>
<p>In einem Algorithmus habe ich nun folgende Funktion verwendet</p>
<pre><code class="language-cpp">bool funktion(int x, int y)
</code></pre>
<p>Diese Funktion wird im Laufe des Algorithmus' häufig aufgerufen. Der Algorithmus läuft insgesamt ca. 14,9 sek.<br />
Wenn ich aber nun</p>
<pre><code class="language-cpp">bool funktion(int&amp; x, int&amp; y)
</code></pre>
<p>verwende, braucht der Algorithmus auf einmal 17sek.</p>
<p>Wieso sind bei int-Werten &quot;normale&quot; Funktionsparameter schneller als Referenzen? Müsste bei Referenzen nicht der Kopiervorgang umgangen werden und der Alogrithmus so schneller laufen?</p>
<p>Anmerkung: x und y werden durch die Funktion nicht geändert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1658124</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1658124</guid><dc:creator><![CDATA[workspace]]></dc:creator><pubDate>Wed, 04 Feb 2009 19:58:00 GMT</pubDate></item><item><title><![CDATA[Reply to Referenzparameter? on Wed, 04 Feb 2009 20:00:54 GMT]]></title><description><![CDATA[<p>Kopiert muss immer etwas werden. Und das sind bei einem string von einer Länge von 1000 lediglich 4 Byten (die Referenz halt) und bei einem Integer, der selbst auch 4 Bytes hat sparst du dir nichts. Im Gegenteil es kann, wie du schon sagst längsämer sein..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1658126</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1658126</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Wed, 04 Feb 2009 20:00:54 GMT</pubDate></item><item><title><![CDATA[Reply to Referenzparameter? on Wed, 04 Feb 2009 20:59:53 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>Im Gegenteil es kann, wie du schon sagst längsämer sein..</p>
</blockquote>
<p>Was daran liegen kann, dass die Referenz innerhalb der Funktion dereferenziert wird, was natürlich auch Zeit braucht.</p>
<p>Je nach Compiler ist es auch möglich, dass so etwas rausoptimiert wird. Aber besser, man verlässt sich nicht drauf. Als Grundsatz kann man sich merken, komplexere Typen wie Klassen als <strong>Const</strong>-Referenz zu übergeben (wenn sie nicht verändert werden) und kleinere, eingebaute Typen als Kopie.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1658157</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1658157</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Wed, 04 Feb 2009 20:59:53 GMT</pubDate></item></channel></rss>