<?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[FEHLER]]></title><description><![CDATA[<p>Hallo hab wieder ne Fehlermeldung.Ich versteh nicht, warum ich nicht bei Farbskala TEMP übergeben kann.Wenn ich 0 oder 1 übergebe dann kommt auch ne Fehlermeldung.<br />
Irgendwie wird mir das nicht klar.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;
#include &lt;vector&gt;

	double const constf = 0.00390625;
	double x = 256;
	double y = 256;
	double z = 256;
	double r = x * constf;
	double g = y * constf;
	double b = z * constf;

	class colormap{
	public:
		enum color_map { TEMP, FARBT }; // dein enum
		void colormap_funct(color_map whichColormap);
		colormap(color_map whichColormap,double min,double max);
		double minimum;
		double maximum;
		double define_color(double min, double max, double val);
		std::vector&lt;double&gt; calcColorTempColormap(double min, double max, double val);
		std::vector&lt;double&gt; calcColorFARBTONColormap(double min, double max, double val);
		~colormap();

	};
	double colormap::define_color(double min, double max, double val)
	{
	    double t = ((val-min)/(max-min));
		return t;
	}
	void colormap::colormap_funct(color_map whichColormap)
	{
	switch(whichColormap)
	{
	case TEMP :  calcColorTempColormap(min,max,val); 
	break; 
    case FARBT:  calcColorFARBTONColormap(min,max,val); 
	break;
    default: 
	throw std::logic_error(&quot;Unknown colormap&quot;);
	}
	}

	std::vector&lt;double&gt; colormap::calcColorFARBTONColormap(double min, double max, double val)
	{
	double t=define_color(min, max, val);
		std::vector&lt;double&gt; myColors;
		// glROT2
		if(((t&lt;=(1.0/6.0)))||(t&gt;=(5.0/6.0) &amp;&amp; t&lt;1))
		myColors.push_back(1);
		else if((t&gt;(1.0/3.0)) &amp;&amp; (t&lt;=(2.0/3.0)))
		myColors.push_back(0);
		else if((t&gt;(2.0/3.0)) &amp;&amp; (t&lt;(5.0/6.0)))
		myColors.push_back((t-(2.0/3.0))/((5.0/6.0)-(2.0/3.0)));
		else 
		myColors.push_back(1-(t-(1.0/6.0))/((1.0/3.0)-(1.0/6.0)));
		// glGRUEN2
		if(t&lt;=(1.0/3.0))
		myColors.push_back(0);
		else if((t&gt;=(1.0/2.0)) &amp;&amp; (t&lt;=(5.0/6.0)))
		myColors.push_back(1);
		else if((t&gt;(5.0/6.0)) &amp;&amp; (t&lt;1))
		myColors.push_back(1-((t-(5.0/6.0))/(1-(5.0/6.0))));
		else
		myColors.push_back((t-(1.0/3.0))/((1.0/2.0)-(1.0/3.0)));
		// glBLAU2
		if((t&gt;=(1.0/6.0)) &amp;&amp; (t&lt;=(1.0/2.0)))
		myColors.push_back(1);
		else if (t&gt;(2.0/3.0))
		myColors.push_back(0);
		else if (t&lt;(1.0/6.0))
		myColors.push_back(t/(1.0/6.0));
		else 
		myColors.push_back(1-((t-0.5)/((2.0/3.0)-(1.0/2.0))));
		return myColors;
		}

	std::vector&lt;double&gt; colormap::calcColorTempColormap(double min, double max, double val)
		{
		double t=define_color(min, max, val);
		std::vector&lt;double&gt; myColors;
		// glrot
		if((t&lt;=(1.0/3.0)))
		myColors.push_back(3*t*r);
		else
		myColors.push_back(1*r);
		// glgruen
		if(t&lt;=(1.0/3.0))
		myColors.push_back(0);
		else if(t&lt;=(2.0/3.0)&amp;&amp; t&gt;(1.0/3.0))
		myColors.push_back((g*3*t)-1);
		else
		myColors.push_back(1*g);
		// GLblau
		if(t&lt;=(2.0/3.0))
		myColors.push_back(0);
		else 
		myColors.push_back((b*3*t)-2);
		return myColors;
		}

	colormap::colormap(color_map whichColormap,double min,double max)
	{
		minimum = min;
		maximum = max;
	}

	colormap farbskala(TEMP,200,3000);

	main()
	{

		//std::vector&lt;double&gt; myColors=farbskala.calcColorFARBTONColormap(0,0,0);
        std::vector&lt;double&gt; myColors=farbskala.calcColorTempColormap(200,3000,200);
		std::vector&lt;double&gt;::iterator Iter;
		double temp;
		for (Iter=myColors.begin();Iter!=myColors.end();Iter++)
			temp=*Iter;  //todo: checken, ob richtig
	}
</code></pre>
<p>Fehlermeldung:colormap.cpp(109): error C2065: 'TEMP': nichtdeklarierter Bezeichner<br />
Fehlermeldung:colormap.cpp(35): error C2065: 'val': nichtdeklarierter Bezeichner<br />
Fehlermeldung:colormap.cpp(37): error C3861: 'val': Bezeichner wurde auch mit einer argumentbezogenen Suche nicht gefunden</p>
<p>DANKE FÜR EURE HILFE!!!<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/topic/208533/fehler</link><generator>RSS for Node</generator><lastBuildDate>Sun, 11 Oct 2026 20:37:56 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/208533.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 19 Mar 2008 13:03:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to FEHLER on Wed, 19 Mar 2008 13:03:45 GMT]]></title><description><![CDATA[<p>Hallo hab wieder ne Fehlermeldung.Ich versteh nicht, warum ich nicht bei Farbskala TEMP übergeben kann.Wenn ich 0 oder 1 übergebe dann kommt auch ne Fehlermeldung.<br />
Irgendwie wird mir das nicht klar.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;
#include &lt;vector&gt;

	double const constf = 0.00390625;
	double x = 256;
	double y = 256;
	double z = 256;
	double r = x * constf;
	double g = y * constf;
	double b = z * constf;

	class colormap{
	public:
		enum color_map { TEMP, FARBT }; // dein enum
		void colormap_funct(color_map whichColormap);
		colormap(color_map whichColormap,double min,double max);
		double minimum;
		double maximum;
		double define_color(double min, double max, double val);
		std::vector&lt;double&gt; calcColorTempColormap(double min, double max, double val);
		std::vector&lt;double&gt; calcColorFARBTONColormap(double min, double max, double val);
		~colormap();

	};
	double colormap::define_color(double min, double max, double val)
	{
	    double t = ((val-min)/(max-min));
		return t;
	}
	void colormap::colormap_funct(color_map whichColormap)
	{
	switch(whichColormap)
	{
	case TEMP :  calcColorTempColormap(min,max,val); 
	break; 
    case FARBT:  calcColorFARBTONColormap(min,max,val); 
	break;
    default: 
	throw std::logic_error(&quot;Unknown colormap&quot;);
	}
	}

	std::vector&lt;double&gt; colormap::calcColorFARBTONColormap(double min, double max, double val)
	{
	double t=define_color(min, max, val);
		std::vector&lt;double&gt; myColors;
		// glROT2
		if(((t&lt;=(1.0/6.0)))||(t&gt;=(5.0/6.0) &amp;&amp; t&lt;1))
		myColors.push_back(1);
		else if((t&gt;(1.0/3.0)) &amp;&amp; (t&lt;=(2.0/3.0)))
		myColors.push_back(0);
		else if((t&gt;(2.0/3.0)) &amp;&amp; (t&lt;(5.0/6.0)))
		myColors.push_back((t-(2.0/3.0))/((5.0/6.0)-(2.0/3.0)));
		else 
		myColors.push_back(1-(t-(1.0/6.0))/((1.0/3.0)-(1.0/6.0)));
		// glGRUEN2
		if(t&lt;=(1.0/3.0))
		myColors.push_back(0);
		else if((t&gt;=(1.0/2.0)) &amp;&amp; (t&lt;=(5.0/6.0)))
		myColors.push_back(1);
		else if((t&gt;(5.0/6.0)) &amp;&amp; (t&lt;1))
		myColors.push_back(1-((t-(5.0/6.0))/(1-(5.0/6.0))));
		else
		myColors.push_back((t-(1.0/3.0))/((1.0/2.0)-(1.0/3.0)));
		// glBLAU2
		if((t&gt;=(1.0/6.0)) &amp;&amp; (t&lt;=(1.0/2.0)))
		myColors.push_back(1);
		else if (t&gt;(2.0/3.0))
		myColors.push_back(0);
		else if (t&lt;(1.0/6.0))
		myColors.push_back(t/(1.0/6.0));
		else 
		myColors.push_back(1-((t-0.5)/((2.0/3.0)-(1.0/2.0))));
		return myColors;
		}

	std::vector&lt;double&gt; colormap::calcColorTempColormap(double min, double max, double val)
		{
		double t=define_color(min, max, val);
		std::vector&lt;double&gt; myColors;
		// glrot
		if((t&lt;=(1.0/3.0)))
		myColors.push_back(3*t*r);
		else
		myColors.push_back(1*r);
		// glgruen
		if(t&lt;=(1.0/3.0))
		myColors.push_back(0);
		else if(t&lt;=(2.0/3.0)&amp;&amp; t&gt;(1.0/3.0))
		myColors.push_back((g*3*t)-1);
		else
		myColors.push_back(1*g);
		// GLblau
		if(t&lt;=(2.0/3.0))
		myColors.push_back(0);
		else 
		myColors.push_back((b*3*t)-2);
		return myColors;
		}

	colormap::colormap(color_map whichColormap,double min,double max)
	{
		minimum = min;
		maximum = max;
	}

	colormap farbskala(TEMP,200,3000);

	main()
	{

		//std::vector&lt;double&gt; myColors=farbskala.calcColorFARBTONColormap(0,0,0);
        std::vector&lt;double&gt; myColors=farbskala.calcColorTempColormap(200,3000,200);
		std::vector&lt;double&gt;::iterator Iter;
		double temp;
		for (Iter=myColors.begin();Iter!=myColors.end();Iter++)
			temp=*Iter;  //todo: checken, ob richtig
	}
</code></pre>
<p>Fehlermeldung:colormap.cpp(109): error C2065: 'TEMP': nichtdeklarierter Bezeichner<br />
Fehlermeldung:colormap.cpp(35): error C2065: 'val': nichtdeklarierter Bezeichner<br />
Fehlermeldung:colormap.cpp(37): error C3861: 'val': Bezeichner wurde auch mit einer argumentbezogenen Suche nicht gefunden</p>
<p>DANKE FÜR EURE HILFE!!!<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/1477248</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1477248</guid><dc:creator><![CDATA[sportsfreund]]></dc:creator><pubDate>Wed, 19 Mar 2008 13:03:45 GMT</pubDate></item><item><title><![CDATA[Reply to FEHLER on Wed, 19 Mar 2008 13:05:33 GMT]]></title><description><![CDATA[<p>Glaub mir: Den Code liest sich hier kein Schwein durch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1477251</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1477251</guid><dc:creator><![CDATA[Gläiboger]]></dc:creator><pubDate>Wed, 19 Mar 2008 13:05:33 GMT</pubDate></item><item><title><![CDATA[Reply to FEHLER on Wed, 19 Mar 2008 13:06:18 GMT]]></title><description><![CDATA[<p>Steht da doch. Was ist TEMP? Was ist in der Funktion val? Nirgends definiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1477253</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1477253</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Wed, 19 Mar 2008 13:06:18 GMT</pubDate></item><item><title><![CDATA[Reply to FEHLER on Wed, 19 Mar 2008 13:50:33 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">const double colormap::define_color(const double min, const double max, const double val) const
{ return (val - min) / (max - min); }

void colormap::colormap_funct(color_map const&amp; type)
{
    switch (type)
    {
    case colormap::TEMP:  
        calcColorTempColormap(min, max, val);
        break;
    case colormap::FARBT:  
        calcColorFARBTONColormap(min, max, val);
        break;
    default:
        throw std::logic_error(&quot;Unknown colormap&quot;);
    }
}
</code></pre>
<p>... s</p>
<pre><code class="language-cpp">colormap::colormap(color_map const&amp; type, const double minimum, const double maximum)
    : minimum(minimum), maximum(maximum)
{ }

int main()
{
    colormap farbskala(colormap::TEMP,200,3000);
    // ...
</code></pre>
<p>Aber insgesammt ist der Code stark optimierungsbedürftig!</p>
<pre><code class="language-cpp">typedef unsigned char[3] rgb_t;

const rgb_t colormap::calcColorTempColormap(const double min, const double max, const double val)
{
	const double tmp(define_color(min, max, val));
	rgb_t colors;
	unsigned char* it(&amp;colors[0]);

	if (tmp &lt;= 0.333333333333)
	{
		// glrot
		*it++ = 3 * tmp * r;
		// glgruen
		*it++ = 0;
	}
	else
	{
		// glrot
		*it++ = r;

		if (tmp &lt;= 0.66666666666)
		{
			// glgruen
			*it++ = g * 3.0 * tmp - 1;
			// glblau
			*it = 0;
		}
		else
		{
			// glgruen
			*it++ = g;
			// glblau
			*it = b * 3.0 * tmp - 2;
		}
	}
}
</code></pre>
<p>sollte von der Performance her wesentlich schneller sein als dein Code.<br />
=&gt; Einsparen von Divisionen<br />
=&gt; Iterator(Zeiger in dem Fall) sind schneller als Indexoperatoren<br />
=&gt; POD statt std::vector</p>
<pre><code class="language-cpp">const rgb_t colormap::calcColorFARBTONColormap(const double min, const double max, const double val)
{
	const double tmp(define_color(min, max, val));
	rgb_t colors;
	unsigned char* it(&amp;colors[0]);

	// glrot
    if (tmp &lt;= 0.1666666666666666)
        *it++ = 1;
	else if (tmp &lt;= 0.333333333333333)
		*it++ = 1 - (tmp - 0.1666666666666666) / 0.1666666666666666;
	else if (tmp &lt;= 0.6666666666666)
        *it++ = 0;
	else if (tmp &lt; 0.83333333333333)
        *it++ = (tmp - 0.6666666666666) / 0.1666666666666666;
	else if (tmp &lt; 1.0)
		*it++ = 1;
	else
        *it++ = 1 - (tmp - 0.1666666666666666) / 0.1666666666666666;

	// glgruen
    if (tmp &lt;= 0.3333333333333)
        *it++ = 0;
	else if (tmp &gt;= 0.5 &amp;&amp; tmp &lt;= 0.83333333333333)
        *it++ = 1;
	else if (tmp &gt; 0.83333333333333 &amp;&amp; tmp &lt; 1.0)
		*it++ = 1 - (tmp - 0.83333333333333) / 0.1666666666666666;
	else
		*it++ = (tmp - 0.333333333333333) / 0.16666666666666666;

	// glblau
	if (tmp &lt; 0.16666666666666)
		*it = tmp / 0.1666666666666;
	if (tmp &lt;= 0.5)
        *it = 1;
	else if (tmp &gt; 0.666666666666666)
		*it = 0;
	else
		*it = 1 - (tmp - 0.5)/ 0.166666666666666666;

	return colors;
}
</code></pre>
<p>=&gt; POD statt std::vector (da nunr 3 Werte ...)<br />
=&gt; Umsortieren deiner if-Schachtelung<br />
-&gt; Weniger Vergleiche<br />
=&gt; Iterator(Zeiger)<br />
=&gt; Divisionen raus genommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1477258</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1477258</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Wed, 19 Mar 2008 13:50:33 GMT</pubDate></item><item><title><![CDATA[Reply to FEHLER on Wed, 19 Mar 2008 15:15:37 GMT]]></title><description><![CDATA[<p>An (D)evil</p>
<p>WOW!!!!</p>
<p>Dank dir!!!!!!</p>
<p>Werd erstmal n bissl Zeit brauchen zu verinnerlichen was du da so schnell hingezaubert hast.<br />
Respekt. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /><br />
Hoffe, dass ich irgendwann auch in den Genuss komme gute Antworten zu geben als ständig nur zu fragen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1477346</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1477346</guid><dc:creator><![CDATA[sportsfreund]]></dc:creator><pubDate>Wed, 19 Mar 2008 15:15:37 GMT</pubDate></item><item><title><![CDATA[Reply to FEHLER on Wed, 19 Mar 2008 18:34:34 GMT]]></title><description><![CDATA[<p>(D)Evil, für wie blöd hälst du eigentlich die Compiler (bzw. die Entwickler von Compilern)?<br />
Statt deiner Magic-Numbers (0.1666666666666666 !!!) würde ich eher den Code von 'sportsfreund' nehmen.<br />
Besser wäre natürlich noch die Benutzung von benannten Konstanten:</p>
<pre><code class="language-cpp">const double Third = 1.0/3.0;
// etc.
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1477458</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1477458</guid><dc:creator><![CDATA[~Compilerfreund]]></dc:creator><pubDate>Wed, 19 Mar 2008 18:34:34 GMT</pubDate></item><item><title><![CDATA[Reply to FEHLER on Wed, 19 Mar 2008 19:32:40 GMT]]></title><description><![CDATA[<p>(D)Evil schrieb:</p>
<blockquote>
<p>Aber insgesammt ist der Code stark optimierungsbedürftig! [ ... ]<br />
Performance [ ... ] =&gt; Einsparen von Divisionen [ ... ] =&gt; Divisionen raus genommen.</p>
</blockquote>
<p>~Compilerfreund schrieb:</p>
<blockquote>
<p>(D)Evil, für wie blöd hälst du eigentlich die Compiler (bzw. die Entwickler von Compilern)?</p>
</blockquote>
<p>=&gt; besser lesen und du kommst selbst auf die lösung...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1477494</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1477494</guid><dc:creator><![CDATA[mh...]]></dc:creator><pubDate>Wed, 19 Mar 2008 19:32:40 GMT</pubDate></item><item><title><![CDATA[Reply to FEHLER on Wed, 19 Mar 2008 20:24:38 GMT]]></title><description><![CDATA[<p>~Compilerfreund schrieb:</p>
<blockquote>
<p>(D)Evil, für wie blöd hälst du eigentlich die Compiler (bzw. die Entwickler von Compilern)?<br />
Statt deiner Magic-Numbers (0.1666666666666666 !!!) würde ich eher den Code von 'sportsfreund' nehmen.<br />
Besser wäre natürlich noch die Benutzung von benannten Konstanten:</p>
<pre><code class="language-cpp">const double Third = 1.0/3.0;
// etc.
</code></pre>
</blockquote>
<p>Du hast Recht, dass es voelliger Unsinn ist 0.1666666666666666 anstelle 1.0/6.0 zu schreiben. Aber eine Konstante &quot;Third&quot; zu nennen erinnert mich etwas an <a href="http://thedailywtf.com/Articles/One2Pt20462262185th_TwoPtZero.aspx" rel="nofollow">einen gewissen Artikel</a>.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1477512</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1477512</guid><dc:creator><![CDATA[Christoph]]></dc:creator><pubDate>Wed, 19 Mar 2008 20:24:38 GMT</pubDate></item><item><title><![CDATA[Reply to FEHLER on Wed, 19 Mar 2008 20:30:45 GMT]]></title><description><![CDATA[<p>Christoph schrieb:</p>
<blockquote>
<p>Aber eine Konstante &quot;Third&quot; zu nennen erinnert mich etwas an <a href="http://thedailywtf.com/Articles/One2Pt20462262185th_TwoPtZero.aspx" rel="nofollow">einen gewissen Artikel</a>.</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1477516</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1477516</guid><dc:creator><![CDATA[LOLerskates]]></dc:creator><pubDate>Wed, 19 Mar 2008 20:30:45 GMT</pubDate></item><item><title><![CDATA[Reply to FEHLER on Wed, 19 Mar 2008 20:39:31 GMT]]></title><description><![CDATA[<p>(D)Evil schrieb:</p>
<blockquote>
<pre><code class="language-cpp">typedef unsigned char[3] rgb_t;

const rgb_t colormap::calcColorTempColormap(const double min, const double max, const double val)
{
	const double tmp(define_color(min, max, val));
	rgb_t colors;
	unsigned char* it(&amp;colors[0]);
	
	if (tmp &lt;= 0.333333333333)
	{
		// glrot
		*it++ = 3 * tmp * r;
		// glgruen
		*it++ = 0;
	}
	else
	{
		// glrot
		*it++ = r;
		
		if (tmp &lt;= 0.66666666666)
		{
			// glgruen
			*it++ = g * 3.0 * tmp - 1;
			// glblau
			*it = 0;
		}
		else
		{
			// glgruen
			*it++ = g;
			// glblau
			*it = b * 3.0 * tmp - 2;
		}
	}
}
</code></pre>
<p>sollte von der Performance her wesentlich schneller sein als dein Code.<br />
=&gt; Einsparen von Divisionen<br />
=&gt; Iterator(Zeiger in dem Fall) sind schneller als Indexoperatoren<br />
=&gt; POD statt std::vector</p>
</blockquote>
<p>Da ist viel verstecktes Grauen dabei.<br />
Ich vermisse im Übrigen ein return - da bin ich auch sehr gespannt. Bloß weil rgb_t nicht so aussieht, bedeutet nicht, dass Funktionen plötzlich Arrays zurückgeben können.<br />
Es gibt keinen plausiblen Grund, weshalb die Performance von Iteratoren gegenüber Indizierung per se besser oder schlechter sein sollte.<br />
POD statt vector. ja, aber eigentlich heißt es Initialisierung statt komplizierter Zuweisung (dann kann man auch das blau nicht mal eben vergessen, und das Erscheinungsbild wird regelmäßiger).</p>
<pre><code class="language-cpp">struct rgb_t { unsigned char r,g,b; };
// typedef std::tr1::tuple&lt;uchar,uchar,uchar&gt; rgb_t;
rgb_t colormap::calcColorTempColormap(double min, double max, double val)
{
	const double tmp = 3 * define_color(min, max, val);
	if ( tmp &lt;= 1 )
	{
		rgb_t colors = { tmp * r, 0, 0 };
		return colors;
	}
	else if ( tmp &lt;= 2 )
	{
		rgb_t colors = { r, g * tmp - 1, 0 };
		return colors;
	}
	else
	{
		rgb_t colors = { r, g, b * tmp - 2 };
		return colors;
	}
}
</code></pre>
<p>nat. nur, wenn die Analyse des ursprünglichen Codes stimmt, ich bin jetzt mal davon ausgegangen, dass die Berechnung (D)Evil ansonsten korrekt ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1477518</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1477518</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Wed, 19 Mar 2008 20:39:31 GMT</pubDate></item><item><title><![CDATA[Reply to FEHLER on Wed, 19 Mar 2008 20:45:18 GMT]]></title><description><![CDATA[<p>Schau mal in Zeile 43!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1477522</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1477522</guid><dc:creator><![CDATA[ja genau,da is der FEHLER]]></dc:creator><pubDate>Wed, 19 Mar 2008 20:45:18 GMT</pubDate></item><item><title><![CDATA[Reply to FEHLER on Thu, 20 Mar 2008 10:18:20 GMT]]></title><description><![CDATA[<p>Hmm Indexoperator ist aber langsamer als ein Zeiger.<br />
Indexoperator:<br />
- Startposition des Array nehmen<br />
- Um i Einheiten nach vorne schieben<br />
Zeiger:<br />
- Fertig <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>Und ja stimmt mit den Magic numbers ist klar... war nur zum vereinfachen ein wenig leichter ... sorry.</p>
<p>Das return hab ich vergessen ... war nur hier reingetippt und nicht getestet ... von d.h. kann es sein das nen paar Fehler drin sind. Es ging mir auch mehr darum, dass da einiges vereinfacht/verbessert werden konnte!</p>
<p>Öhm stimmt im ersten Zweig fehlt mir ein blau ... verflucht ^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1477678</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1477678</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Thu, 20 Mar 2008 10:18:20 GMT</pubDate></item><item><title><![CDATA[Reply to FEHLER on Thu, 20 Mar 2008 11:10:36 GMT]]></title><description><![CDATA[<p>und im besten fall hast du einen random-access-iterator und machst dann:</p>
<pre><code class="language-cpp">*(i + 1) = ...
*(i + 2) = ...
*(i + 3) = ...
</code></pre>
<p><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="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1477715</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1477715</guid><dc:creator><![CDATA[queer_boy]]></dc:creator><pubDate>Thu, 20 Mar 2008 11:10:36 GMT</pubDate></item></channel></rss>