<?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[Konstante Liste]]></title><description><![CDATA[<p>Hi!</p>
<p>Ich hätte eine Verständnisfrage bzgl. Initialisierung konstanter Objekte:</p>
<p>In einer Klasse darf eine Membervariable nur bestimmte Werte annehmen. Dazu wollte ich eine konstante Liste mit den gültigen Werten definieren und zur Überprüfung vergleichen, ob der Wert der Variablen in der Liste enthalten ist.</p>
<p>Wie jedoch initialisiere ich eine konstanten Liste/Vectors? Bzw. ist das überhaupt der richtig Methode?</p>
<p>Folgendes funktioniert leider nicht:</p>
<pre><code>static const List&lt;int&gt; VALID_VALUE;
VALID_VALUE.append(2);

'List&lt;T&gt;::append' : 2 overloads have no legal conversion for 'this' pointer
</code></pre>
<p>mfg,<br />
soad</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/267682/konstante-liste</link><generator>RSS for Node</generator><lastBuildDate>Wed, 02 Sep 2026 07:51:49 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/267682.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 28 May 2010 12:42:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Konstante Liste on Fri, 28 May 2010 12:42:00 GMT]]></title><description><![CDATA[<p>Hi!</p>
<p>Ich hätte eine Verständnisfrage bzgl. Initialisierung konstanter Objekte:</p>
<p>In einer Klasse darf eine Membervariable nur bestimmte Werte annehmen. Dazu wollte ich eine konstante Liste mit den gültigen Werten definieren und zur Überprüfung vergleichen, ob der Wert der Variablen in der Liste enthalten ist.</p>
<p>Wie jedoch initialisiere ich eine konstanten Liste/Vectors? Bzw. ist das überhaupt der richtig Methode?</p>
<p>Folgendes funktioniert leider nicht:</p>
<pre><code>static const List&lt;int&gt; VALID_VALUE;
VALID_VALUE.append(2);

'List&lt;T&gt;::append' : 2 overloads have no legal conversion for 'this' pointer
</code></pre>
<p>mfg,<br />
soad</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1903717</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1903717</guid><dc:creator><![CDATA[soad]]></dc:creator><pubDate>Fri, 28 May 2010 12:42:00 GMT</pubDate></item><item><title><![CDATA[Reply to Konstante Liste on Fri, 28 May 2010 12:54:07 GMT]]></title><description><![CDATA[<p>Es gibt einige list-Konstruktoren die du verwenden könntest. Der mit der Signatur</p>
<pre><code class="language-cpp">template &lt; class InputIterator &gt; list ( InputIterator first, InputIterator last, const Allocator&amp; = Allocator() );
</code></pre>
<p>bietet sich an.</p>
<p>Wenn ich jedoch eine Variable hätte, die nur bestimmte Werte annehmen soll, dann würde ich eher eine neue Klasse als Variablentyp anlegen, die nur diese gültigen Werte zulässt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1903726</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1903726</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 28 May 2010 12:54:07 GMT</pubDate></item><item><title><![CDATA[Reply to Konstante Liste on Fri, 28 May 2010 12:57:28 GMT]]></title><description><![CDATA[<p>Was spricht in diesem Fall gegen ein Array?</p>
<pre><code class="language-cpp">bool isvalid( const int &amp;val )
{
	const int valid_values[] = { 1, 3, 4 };

	return std::binary_search( valid_values, valid_values + sizeof( valid_values ) / sizeof( int ), val ); //Ich trau dem  Programmierer mal zu die Werte zu sortieren
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1903727</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1903727</guid><dc:creator><![CDATA[rean]]></dc:creator><pubDate>Fri, 28 May 2010 12:57:28 GMT</pubDate></item><item><title><![CDATA[Reply to Konstante Liste on Fri, 28 May 2010 18:03:06 GMT]]></title><description><![CDATA[<p>Sinnvoller als die Liste konstant zu machen ist es wahrscheinlich, die überprüfende Methode mit <code>const</code> zu qualifizieren. Oder gar nichts zu tun. Bei einer kleinen Schnittstelle sollte das Risiko eines versehentlichen Zugriffs minimal sein.</p>
<p>Jedenfalls schränkt man sich mit <code>const std::list&lt;int&gt;</code> als Member viel stärker ein, als einem normalerweise lieb ist. Daher rate ich von diesem Ansatz ab.</p>
<p>Übrigens besitzt <code>std::binary_search()</code> auf einer <code>std::list</code> wegen der Bidirectional-Iteratoren eine lineare Zeitkomplexität. Ich würde zu <code>std::set</code> raten, vielleicht ist auch eine lineare Suche mit <code>std::find()</code> vertretbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1903862</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1903862</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 28 May 2010 18:03:06 GMT</pubDate></item><item><title><![CDATA[Reply to Konstante Liste on Sat, 29 May 2010 11:06:26 GMT]]></title><description><![CDATA[<p>Ich danke für eure Hilfe!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1904052</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1904052</guid><dc:creator><![CDATA[soad]]></dc:creator><pubDate>Sat, 29 May 2010 11:06:26 GMT</pubDate></item></channel></rss>