<?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[transform aus &amp;lt;algorithm&amp;gt;]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich beschäftige mich gerade mit der STL und bin auf den transform-Algorithmus gestoßen. Nachdem ich mir den entsprechenden Artikel in der C++-Referenz durchgelesen habe, sind leider noch ein paar Fragen offen geblieben, die euch euch jetzt gerne stellen möchte.</p>
<p>Mittels des transform-Algorithmus quadriere ich alle Werte in einem Vector.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;vector&gt;
#include &lt;algorithm&gt;
using namespace std;

int square(int a) {return a*a;}

int main() {

	vector&lt;float&gt; vec;
	for(int i=0; i&lt;10; i++)
		vec.push_back(i);	//Vector mit Zahlen füllen

 	transform (vec.begin(), vec.end(), vec.begin(), square);

	for(int i=0; i&lt;10; i++)
		cout &lt;&lt; vec[i] &lt;&lt; &quot; &quot;;         
	return 0;
}
</code></pre>
<p>1.) Verstehe ich das so richtig: Der erste Parameter ist ein Iterator auf den Anfang des Vektors, der zweite auf das Ende. Damit werden quasi die Grenzen einer Schleife geschaffen, die durch den Vektor iterieren. Der dritte Parameter gibt einen Iterator auf den Begin des Zielvektor dar. Der letzte ist schließlich ein Pointer auf die Funktion, die angewandt werden soll.</p>
<p>2.) Handelt es sich hierbei um eine Implementierung der &quot;map&quot;-Funktion, die man aus funktionalen Programmiersprachen kennt?</p>
<p>Vielen Dank<br />
LG, freakC++</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/310766/transform-aus-lt-algorithm-gt</link><generator>RSS for Node</generator><lastBuildDate>Tue, 04 Aug 2026 06:29:45 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/310766.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 19 Nov 2012 16:07:03 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to transform aus &amp;lt;algorithm&amp;gt; on Mon, 19 Nov 2012 16:07:03 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich beschäftige mich gerade mit der STL und bin auf den transform-Algorithmus gestoßen. Nachdem ich mir den entsprechenden Artikel in der C++-Referenz durchgelesen habe, sind leider noch ein paar Fragen offen geblieben, die euch euch jetzt gerne stellen möchte.</p>
<p>Mittels des transform-Algorithmus quadriere ich alle Werte in einem Vector.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;vector&gt;
#include &lt;algorithm&gt;
using namespace std;

int square(int a) {return a*a;}

int main() {

	vector&lt;float&gt; vec;
	for(int i=0; i&lt;10; i++)
		vec.push_back(i);	//Vector mit Zahlen füllen

 	transform (vec.begin(), vec.end(), vec.begin(), square);

	for(int i=0; i&lt;10; i++)
		cout &lt;&lt; vec[i] &lt;&lt; &quot; &quot;;         
	return 0;
}
</code></pre>
<p>1.) Verstehe ich das so richtig: Der erste Parameter ist ein Iterator auf den Anfang des Vektors, der zweite auf das Ende. Damit werden quasi die Grenzen einer Schleife geschaffen, die durch den Vektor iterieren. Der dritte Parameter gibt einen Iterator auf den Begin des Zielvektor dar. Der letzte ist schließlich ein Pointer auf die Funktion, die angewandt werden soll.</p>
<p>2.) Handelt es sich hierbei um eine Implementierung der &quot;map&quot;-Funktion, die man aus funktionalen Programmiersprachen kennt?</p>
<p>Vielen Dank<br />
LG, freakC++</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2272373</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2272373</guid><dc:creator><![CDATA[freakC++]]></dc:creator><pubDate>Mon, 19 Nov 2012 16:07:03 GMT</pubDate></item><item><title><![CDATA[Reply to transform aus &amp;lt;algorithm&amp;gt; on Mon, 19 Nov 2012 16:41:12 GMT]]></title><description><![CDATA[<p>zu 1): Richtig.<br />
Die funktionalen Programmiersprachen sind mir fremd...</p>
<p>Edit: gibt es einen bestimmten Grund, warum sich die Datentypen der Funktion und des Vektors unterscheiden? Implizite Typumwandlungen sind manchmal nützlich, hier macht's aber keinen Sinn.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2272379</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2272379</guid><dc:creator><![CDATA[*Rewind*]]></dc:creator><pubDate>Mon, 19 Nov 2012 16:41:12 GMT</pubDate></item><item><title><![CDATA[Reply to transform aus &amp;lt;algorithm&amp;gt; on Mon, 19 Nov 2012 16:33:16 GMT]]></title><description><![CDATA[<p>1.- richtig<br />
2.- so wie du sie grad benutzt ja</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2272380</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2272380</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Mon, 19 Nov 2012 16:33:16 GMT</pubDate></item><item><title><![CDATA[Reply to transform aus &amp;lt;algorithm&amp;gt; on Mon, 19 Nov 2012 16:36:34 GMT]]></title><description><![CDATA[<p>Skym0sh0 schrieb:</p>
<blockquote>
<p>2.- so wie du sie grad benutzt ja</p>
</blockquote>
<p>Meinen bescheidenen funktionalen Kenntnissen ist die Antwort immer &quot;ja&quot;. Beziehungsweise wenn du pingelig sein willst und darauf hinaus willst, dass vec hier verändert wird, dann wäre hier ein &quot;nein&quot; angebracht, weil Objekte in funktionalen Sprachen immutable sind. Aber prinzipiell ist std::transform nix anderes als map in funktionalen Sprachen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2272381</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2272381</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Mon, 19 Nov 2012 16:36:34 GMT</pubDate></item><item><title><![CDATA[Reply to transform aus &amp;lt;algorithm&amp;gt; on Mon, 19 Nov 2012 16:44:54 GMT]]></title><description><![CDATA[<p>Hallo :D.</p>
<p>Vielen Dank für die rasche Antwort. Ich habe noch ein wenig herumgespielt. Dabei wollte ich mal versuchen, dass erst alle Zahlen ab dem dritten Element im Vektor quadriert werden. Dazu habe ich mal ganz naiv, an den ersten Parameter des transform-Algorithmus +3 gehängt. Zwar werden in der Tat nicht alle Zahlen quadriert, doch das Ergebnis sieht anders aus, also ich erwartet habe.</p>
<p>Das ist das Ergebnis:</p>
<p>9 16 25 36 49 64 81 7 8 9</p>
<p>Kann mir das jemand erklären?</p>
<p>Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2272386</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2272386</guid><dc:creator><![CDATA[freakC++]]></dc:creator><pubDate>Mon, 19 Nov 2012 16:44:54 GMT</pubDate></item><item><title><![CDATA[Reply to transform aus &amp;lt;algorithm&amp;gt; on Mon, 19 Nov 2012 16:46:57 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/20068">@michael</a> e:<br />
aber meine .funktionalen programmierkenntnisse stecken noch in den kinderschuhen, kacke da grad im studium dran ab, weil das denken total strange und abstrakt ist (aber selbst schuld bei einem nicht-pflichtfach). genau wie prolog, auch total strange</p>
<p>freakC++ schrieb:</p>
<blockquote>
<p>Dazu habe ich mal ganz naiv, an den ersten Parameter des transform-Algorithmus +3 gehängt.</p>
</blockquote>
<p>mach das gleiche mal mit dem ziel iterator <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/2272387</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2272387</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Mon, 19 Nov 2012 16:46:57 GMT</pubDate></item></channel></rss>