<?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[Was haltet ihr von dieser Ausgabefunktion? (Optimieren Sie Das!)]]></title><description><![CDATA[<pre><code class="language-cpp">std::ostream &amp; print(std::ostream &amp; out) const
	{
		const float *list[5] = {&amp;w,&amp;x,&amp;y,&amp;z,0};
		const char *suffixes[5] = {&quot;&quot;,&quot;i&quot;,&quot;j&quot;,&quot;k&quot;,0};
		const float **element = list;
		const char **suffix = suffixes;

		for(;*element; ++element, ++suffix)
			if(**element)
			{
				out &lt;&lt; **element &lt;&lt; **suffix;
				break;
			}
		if(!*element)
			out &lt;&lt; '0';
		else
			++element, ++suffix;
		for(;*element; ++element, ++suffix)
		{
			if(**element != 0.0f)
			{
				if(**element &gt;= 0.0f)
					out &lt;&lt; '+';
				out &lt;&lt; **element &lt;&lt; *suffix;
			}
		}

		return out ;
	}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/224200/was-haltet-ihr-von-dieser-ausgabefunktion-optimieren-sie-das</link><generator>RSS for Node</generator><lastBuildDate>Fri, 02 Oct 2026 17:32:44 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/224200.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 06 Oct 2008 22:38:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Was haltet ihr von dieser Ausgabefunktion? (Optimieren Sie Das!) on Mon, 06 Oct 2008 22:38:56 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">std::ostream &amp; print(std::ostream &amp; out) const
	{
		const float *list[5] = {&amp;w,&amp;x,&amp;y,&amp;z,0};
		const char *suffixes[5] = {&quot;&quot;,&quot;i&quot;,&quot;j&quot;,&quot;k&quot;,0};
		const float **element = list;
		const char **suffix = suffixes;

		for(;*element; ++element, ++suffix)
			if(**element)
			{
				out &lt;&lt; **element &lt;&lt; **suffix;
				break;
			}
		if(!*element)
			out &lt;&lt; '0';
		else
			++element, ++suffix;
		for(;*element; ++element, ++suffix)
		{
			if(**element != 0.0f)
			{
				if(**element &gt;= 0.0f)
					out &lt;&lt; '+';
				out &lt;&lt; **element &lt;&lt; *suffix;
			}
		}

		return out ;
	}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1594522</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1594522</guid><dc:creator><![CDATA[..,-]]></dc:creator><pubDate>Mon, 06 Oct 2008 22:38:56 GMT</pubDate></item><item><title><![CDATA[Reply to Was haltet ihr von dieser Ausgabefunktion? (Optimieren Sie Das!) on Mon, 06 Oct 2008 22:50:01 GMT]]></title><description><![CDATA[<p>Na dann erklär doch erstmal, wie die Ausgabe aussehen soll. Ist mir zu frickelig, als das ich mir das aus dem Code rauslesen will.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1594527</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1594527</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Mon, 06 Oct 2008 22:50:01 GMT</pubDate></item><item><title><![CDATA[Reply to Was haltet ihr von dieser Ausgabefunktion? (Optimieren Sie Das!) on Tue, 07 Oct 2008 05:51:50 GMT]]></title><description><![CDATA[<p>hi,</p>
<p>Badestrand schrieb:</p>
<blockquote>
<p>Na dann erklär doch erstmal, wie die Ausgabe aussehen soll. Ist mir zu frickelig, als das ich mir das aus dem Code rauslesen will.</p>
</blockquote>
<p>genau das ist das Problem: Die Funktion ist zwar kurz, aber unübersichtlich. Sie soll tun: Einen Quaternion in den ostream out ausgeben, und zwar so, dass keine &quot;0i&quot; &quot;0j&quot; &quot;0k&quot; vorkommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1594558</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1594558</guid><dc:creator><![CDATA[..,-]]></dc:creator><pubDate>Tue, 07 Oct 2008 05:51:50 GMT</pubDate></item><item><title><![CDATA[Reply to Was haltet ihr von dieser Ausgabefunktion? (Optimieren Sie Das!) on Tue, 07 Oct 2008 05:57:06 GMT]]></title><description><![CDATA[<p>..,- schrieb:</p>
<blockquote>
<p>hi,</p>
<p>Badestrand schrieb:</p>
<blockquote>
<p>Na dann erklär doch erstmal, wie die Ausgabe aussehen soll. Ist mir zu frickelig, als das ich mir das aus dem Code rauslesen will.</p>
</blockquote>
<p>genau das ist das Problem: Die Funktion ist zwar kurz, aber unübersichtlich. Sie soll tun: Einen Quaternion in den ostream out ausgeben, und zwar so, dass keine &quot;0i&quot; &quot;0j&quot; &quot;0k&quot; vorkommen.</p>
</blockquote>
<p>P.S. &quot;+-&quot; soll auch nicht vorkommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1594563</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1594563</guid><dc:creator><![CDATA[..,-]]></dc:creator><pubDate>Tue, 07 Oct 2008 05:57:06 GMT</pubDate></item><item><title><![CDATA[Reply to Was haltet ihr von dieser Ausgabefunktion? (Optimieren Sie Das!) on Tue, 07 Oct 2008 06:57:02 GMT]]></title><description><![CDATA[<p>Dann frag mal einen Profiler deiner Wahl, was er meint, wo du Zeit verbrätst und dann optimier die Stelle. So Pseudeoptimierung bringt nichts.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1594596</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1594596</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Tue, 07 Oct 2008 06:57:02 GMT</pubDate></item><item><title><![CDATA[Reply to Was haltet ihr von dieser Ausgabefunktion? (Optimieren Sie Das!) on Tue, 07 Oct 2008 09:00:04 GMT]]></title><description><![CDATA[<p>hi,</p>
<p>drakon schrieb:</p>
<blockquote>
<p>Dann frag mal einen Profiler deiner Wahl, was er meint, wo du Zeit verbrätst und dann optimier die Stelle. So Pseudeoptimierung bringt nichts.</p>
</blockquote>
<p>ich will eine Lesbarkeits-Optimierung, keine Geschwindigkeitsoptimierung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1594642</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1594642</guid><dc:creator><![CDATA[..,-]]></dc:creator><pubDate>Tue, 07 Oct 2008 09:00:04 GMT</pubDate></item><item><title><![CDATA[Reply to Was haltet ihr von dieser Ausgabefunktion? (Optimieren Sie Das!) on Tue, 07 Oct 2008 10:03:21 GMT]]></title><description><![CDATA[<p>Schon mit Kommentaren versucht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1594693</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1594693</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Tue, 07 Oct 2008 10:03:21 GMT</pubDate></item><item><title><![CDATA[Reply to Was haltet ihr von dieser Ausgabefunktion? (Optimieren Sie Das!) on Tue, 07 Oct 2008 11:03:28 GMT]]></title><description><![CDATA[<p>Evtl so?:</p>
<pre><code class="language-cpp">std::ostream&amp; print( std::ostream&amp; out )
{
    const float list[] = { w, x, y, z };
    const char* suffixes[] = { &quot;&quot;, &quot;i&quot;, &quot;j&quot;, &quot;k&quot; };

	bool first_valid_found = false;
    for ( int i=0; i&lt;4; ++i )
    {
		if ( list[i] != 0.0f )
		{
			if ( first_valid_found &amp;&amp; list[i]&gt;0.0f )
				out &lt;&lt; &quot;+&quot;;
			first_valid_found = true;
			out &lt;&lt; list[i] &lt;&lt; suffixes[i];
		}
    }

	if ( ! first_valid_found )
		out &lt;&lt; &quot;0&quot;;
    return out;
}
</code></pre>
<p>edit: Korrigiert, danke Fellhuhn.<br />
edit2: Ne, stimmt immer noch nicht, wegen <code>if(i&gt;0)</code> , falls das erste Element 0 ist.<br />
edit3: So, müsste jetzt hinhauen.<br />
edit4+5: Mini-Korrekturen..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1594711</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1594711</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Tue, 07 Oct 2008 11:03:28 GMT</pubDate></item><item><title><![CDATA[Reply to Was haltet ihr von dieser Ausgabefunktion? (Optimieren Sie Das!) on Tue, 07 Oct 2008 10:49:56 GMT]]></title><description><![CDATA[<p>Das ist nicht das gleiche in dem Fall in dem x,y,z und w == 0 sind.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1594725</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1594725</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Tue, 07 Oct 2008 10:49:56 GMT</pubDate></item><item><title><![CDATA[Reply to Was haltet ihr von dieser Ausgabefunktion? (Optimieren Sie Das!) on Tue, 07 Oct 2008 18:18:36 GMT]]></title><description><![CDATA[<p>Hört mal auf hier Hausaufgaben zu machen, das ist ja schlimm.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1595041</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1595041</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 07 Oct 2008 18:18:36 GMT</pubDate></item><item><title><![CDATA[Reply to Was haltet ihr von dieser Ausgabefunktion? (Optimieren Sie Das!) on Tue, 07 Oct 2008 20:49:00 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Hört mal auf hier Hausaufgaben zu machen, das ist ja schlimm.</p>
</blockquote>
<p>Nö.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1595137</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1595137</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Tue, 07 Oct 2008 20:49:00 GMT</pubDate></item><item><title><![CDATA[Reply to Was haltet ihr von dieser Ausgabefunktion? (Optimieren Sie Das!) on Tue, 07 Oct 2008 22:11:12 GMT]]></title><description><![CDATA[<p>Badestrand schrieb:</p>
<blockquote>
<p>hustbaer schrieb:</p>
<blockquote>
<p>Hört mal auf hier Hausaufgaben zu machen, das ist ja schlimm.</p>
</blockquote>
<p>Nö.</p>
</blockquote>
<p>Koffer</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1595178</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1595178</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 07 Oct 2008 22:11:12 GMT</pubDate></item><item><title><![CDATA[Reply to Was haltet ihr von dieser Ausgabefunktion? (Optimieren Sie Das!) on Tue, 07 Oct 2008 22:22:04 GMT]]></title><description><![CDATA[<p>Seit wann verhältst du dich so kindisch?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1595184</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1595184</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Tue, 07 Oct 2008 22:22:04 GMT</pubDate></item><item><title><![CDATA[Reply to Was haltet ihr von dieser Ausgabefunktion? (Optimieren Sie Das!) on Tue, 07 Oct 2008 22:25:38 GMT]]></title><description><![CDATA[<p>Wie wärs mit einem lesefreundlichen Designansatz:</p>
<pre><code class="language-cpp">typedef struct tagQuaternion
{
    float a;
    float i;
    float j;
    float k;
}Quaternion;
</code></pre>
<p>( Ja is klar ne, geht auch als Klasse )<br />
<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/1595185</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1595185</guid><dc:creator><![CDATA[kOnZePtOr]]></dc:creator><pubDate>Tue, 07 Oct 2008 22:25:38 GMT</pubDate></item><item><title><![CDATA[Reply to Was haltet ihr von dieser Ausgabefunktion? (Optimieren Sie Das!) on Tue, 07 Oct 2008 22:40:46 GMT]]></title><description><![CDATA[<p>Leserlich ?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;stdlib.h&gt;

using namespace std;

typedef struct tagQuaternion 
{ 
    float a; 
    float i; 
    float j; 
    float k; 
}Quaternion;

void MyPrint( Quaternion* q, unsigned n )
{
    int i = 0;
    while ( i &lt; n )
    {
        if ( q[i].i != 0.0 &amp;&amp; q[i].j != 0.0 &amp;&amp; q[i].k != 0.0 )
                printf ( &quot;%E.3f %E.3f %E.3f %E.3f (n=%d)\n&quot;, 
                     q[i].a, q[i].i, q[i].j, q[i].k, i );
        i++;
    }
}

int main(int argc, char *argv[])
{
  Quaternion Q[56];
  MyPrint ( Q, 56 );

  system(&quot;PAUSE&quot;);	
  return 0;
}
</code></pre>
<p>:p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1595192</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1595192</guid><dc:creator><![CDATA[l]]></dc:creator><pubDate>Tue, 07 Oct 2008 22:40:46 GMT</pubDate></item><item><title><![CDATA[Reply to Was haltet ihr von dieser Ausgabefunktion? (Optimieren Sie Das!) on Wed, 08 Oct 2008 03:01:38 GMT]]></title><description><![CDATA[<p>Hier Ferrari!</p>
<p>Und da ist so viel falsch ich weiss gar nicht wo ich anfange soll, die performance zu erhöhen. Es ist so wichtig die Konsolen-Output-Performance zu erhöhen und deswegen ist es schlimm.</p>
<p>Würdest du nur ein paar minuten mit deiner Performance verbringen, würden wir hier jetzt alle nicht das problem haben. das ist das problem. (also!!)!! mach die performance um ein paar punkte besser dann funktioniert das auch.</p>
<p>Topcoder Ferrari!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1595213</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1595213</guid><dc:creator><![CDATA[Ferrari1]]></dc:creator><pubDate>Wed, 08 Oct 2008 03:01:38 GMT</pubDate></item><item><title><![CDATA[Reply to Was haltet ihr von dieser Ausgabefunktion? (Optimieren Sie Das!) on Wed, 08 Oct 2008 15:37:14 GMT]]></title><description><![CDATA[<p>hi,</p>
<p>Badestrand schrieb:</p>
<blockquote>
<p>Evtl so?:<br />
[...]</p>
</blockquote>
<p>ja, das ist gut. ich denke, wenn man first_valid_found in nonzero_found umbenennt, ist es recht optimal.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1595663</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1595663</guid><dc:creator><![CDATA[..,-]]></dc:creator><pubDate>Wed, 08 Oct 2008 15:37:14 GMT</pubDate></item><item><title><![CDATA[Reply to Was haltet ihr von dieser Ausgabefunktion? (Optimieren Sie Das!) on Wed, 08 Oct 2008 16:46:24 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">typedef struct tagQuaternion 
{ 
    float a; 
    float i; 
    float j; 
    float k; 
}Quaternion;
</code></pre>
<p>warum zum teufel ist es so verbreitet, ner klasse 2 verschiedene namen zu geben?</p>
<pre><code class="language-cpp">struct Quaternion
{ 
    float a; 
    float i; 
    float j; 
    float k; 
};
</code></pre>
<p>sieht doch schon gleich viel besser aus...</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1595706</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1595706</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Wed, 08 Oct 2008 16:46:24 GMT</pubDate></item><item><title><![CDATA[Reply to Was haltet ihr von dieser Ausgabefunktion? (Optimieren Sie Das!) on Wed, 08 Oct 2008 18:34:42 GMT]]></title><description><![CDATA[<p>Viele Leute, die von C kommen, machen das halt noch mit <code>typedef struct</code> . Warum man dazu aber <em>zwei</em> Bezeichner erstellt, von denen einer bei der Deklaration ein <code>struct</code> vorne dran haben muss, kann ich dir auch nicht sagen. <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/1595803</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1595803</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Wed, 08 Oct 2008 18:34:42 GMT</pubDate></item><item><title><![CDATA[Reply to Was haltet ihr von dieser Ausgabefunktion? (Optimieren Sie Das!) on Wed, 08 Oct 2008 22:10:57 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>...Warum man dazu aber <em>zwei</em> Bezeichner erstellt, von denen einer bei der Deklaration ein <code>struct</code> vorne dran haben muss, kann ich dir auch nicht sagen. <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>
</blockquote>
<p>Das kommt bestimmt aus dem &quot;Habe-ich-immer-so-gemacht-und-hat-immer-geklappt&quot;-Lehrbuch.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1595920</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1595920</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Wed, 08 Oct 2008 22:10:57 GMT</pubDate></item></channel></rss>