<?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[Probleme mit lists]]></title><description><![CDATA[<p>Hallo Leute,<br />
meine Klasse sieht so aus:</p>
<pre><code class="language-cpp">// Header
class A{
	public:
		std::list&lt;COORDINATE&gt; *sp;
		std::list&lt;COORDINATE&gt; *mp;
		bool A::set_sp_inlist(int pos, COORDINATE new_coo)
...
</code></pre>
<p>// CPP</p>
<pre><code class="language-cpp">bool A::set_sp_inlist(int pos, COORDINATE new_coo){
		this-&gt;sp-&gt;insert(pos,new_coo);
		return true;
	}
</code></pre>
<p>Kurz gesagt möchte ich das beim aufruf set_sp_inlist eine koordinate an einer vorgegeben position abgespeichert wird. beim übersetzen bekommen ich diesen fehler:</p>
<pre><code class="language-cpp">error C2664: 'std::list&lt;_Ty&gt;::_Iterator&lt;_Secure_validation&gt; std::list&lt;_Ty&gt;::insert(std::list&lt;_Ty&gt;::_Const_iterator&lt;true&gt;,const _Ty &amp;)' : cannot convert parameter 1 from 'int' to 'std::list&lt;_Ty&gt;::_Const_iterator&lt;_Secure_validation&gt;'
</code></pre>
<p>Könnte mir jemand bitte sagen was ich hier falsch mache? Bin noch nicht so fit.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/267332/probleme-mit-lists</link><generator>RSS for Node</generator><lastBuildDate>Wed, 02 Sep 2026 12:41:34 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/267332.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 22 May 2010 20:13:49 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Probleme mit lists on Sat, 22 May 2010 20:13:49 GMT]]></title><description><![CDATA[<p>Hallo Leute,<br />
meine Klasse sieht so aus:</p>
<pre><code class="language-cpp">// Header
class A{
	public:
		std::list&lt;COORDINATE&gt; *sp;
		std::list&lt;COORDINATE&gt; *mp;
		bool A::set_sp_inlist(int pos, COORDINATE new_coo)
...
</code></pre>
<p>// CPP</p>
<pre><code class="language-cpp">bool A::set_sp_inlist(int pos, COORDINATE new_coo){
		this-&gt;sp-&gt;insert(pos,new_coo);
		return true;
	}
</code></pre>
<p>Kurz gesagt möchte ich das beim aufruf set_sp_inlist eine koordinate an einer vorgegeben position abgespeichert wird. beim übersetzen bekommen ich diesen fehler:</p>
<pre><code class="language-cpp">error C2664: 'std::list&lt;_Ty&gt;::_Iterator&lt;_Secure_validation&gt; std::list&lt;_Ty&gt;::insert(std::list&lt;_Ty&gt;::_Const_iterator&lt;true&gt;,const _Ty &amp;)' : cannot convert parameter 1 from 'int' to 'std::list&lt;_Ty&gt;::_Const_iterator&lt;_Secure_validation&gt;'
</code></pre>
<p>Könnte mir jemand bitte sagen was ich hier falsch mache? Bin noch nicht so fit.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1901261</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1901261</guid><dc:creator><![CDATA[darkfate]]></dc:creator><pubDate>Sat, 22 May 2010 20:13:49 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit lists on Sat, 22 May 2010 20:39:56 GMT]]></title><description><![CDATA[<p>Wie die Fehlermeldung sagt, erwartet insert als erster parameter einen Iterator und kein int.<br />
<a href="http://www.cplusplus.com/reference/stl/list/insert/" rel="nofollow">http://www.cplusplus.com/reference/stl/list/insert/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1901265</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1901265</guid><dc:creator><![CDATA[BigNeal]]></dc:creator><pubDate>Sat, 22 May 2010 20:39:56 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit lists on Sat, 22 May 2010 20:54:15 GMT]]></title><description><![CDATA[<p>BigNeal schrieb:</p>
<blockquote>
<p>Wie die Fehlermeldung sagt, erwartet insert als erster parameter einen Iterator und kein int.<br />
<a href="http://www.cplusplus.com/reference/stl/list/insert/" rel="nofollow">http://www.cplusplus.com/reference/stl/list/insert/</a></p>
</blockquote>
<p>Ja, verstehe. Wie löst man so etwas? Ich möchte aus einer weiteren Funktion der Klasse set_sp_in_lists(position,wert) aufrufen. In dieser Funktion würde der Iterator ja immer in seinem Lokal Scope untergehen oder nicht?!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1901270</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1901270</guid><dc:creator><![CDATA[darkfate]]></dc:creator><pubDate>Sat, 22 May 2010 20:54:15 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit lists on Sat, 22 May 2010 21:02:28 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">bool A::set_sp_inlist(int pos, COORDINATE new_coo)
{
 std::list&lt;COORDINATE&gt;::iterator it = this-&gt;sp-&gt;begin() + pos;

 this-&gt;sp-&gt;insert(it, new_coo);

 return true; // Wozu??? Nimm doch einfach void!
}
</code></pre>
<p>Versuchs mal so. Was hast du denn genau vor? Eventuell ist ja auch dein gesamter Ansatz nicht so glücklich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1901273</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1901273</guid><dc:creator><![CDATA[kljkljkl]]></dc:creator><pubDate>Sat, 22 May 2010 21:02:28 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit lists on Sat, 22 May 2010 21:21:43 GMT]]></title><description><![CDATA[<p>kljkljkl schrieb:</p>
<blockquote>
<p>Versuchs mal so. Was hast du denn genau vor? Eventuell ist ja auch dein gesamter Ansatz nicht so glücklich.</p>
</blockquote>
<p>Ich habe eine wXwidgets Programm das eine Mausposition übergibt.<br />
Diese Mausposition speicher ich im Struct COORDINATE.<br />
Dann möchte ich diese Koordinate in eine list packen.</p>
<p>Kann gut möglich sein dass es etwas unglücklich wird, habe derzeit nicht viel Erfahrung mit C++</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1901277</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1901277</guid><dc:creator><![CDATA[darkfate]]></dc:creator><pubDate>Sat, 22 May 2010 21:21:43 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit lists on Sun, 23 May 2010 03:20:05 GMT]]></title><description><![CDATA[<p>darkfate schrieb:</p>
<blockquote>
<p>meine Klasse sieht so aus:</p>
<pre><code class="language-cpp">// Header
class A{
   public:
      std::list&lt;COORDINATE&gt; *sp;
      std::list&lt;COORDINATE&gt; *mp;
      bool A::set_sp_inlist(int pos, COORDINATE new_coo)
...
</code></pre>
</blockquote>
<p>Wieso denn bloß? Wieso sind sp und mp Zeiger? Ist doch gar nicht nötig und verkompliziert alles nur!</p>
<p>darkfate schrieb:</p>
<blockquote>
<p>// CPP</p>
<pre><code class="language-cpp">bool A::set_sp_inlist(int pos, COORDINATE new_coo){
		this-&gt;sp-&gt;insert(pos,new_coo);
		return true;
	}
</code></pre>
<p>Kurz gesagt möchte ich das beim aufruf set_sp_inlist eine koordinate an einer vorgegeben position abgespeichert wird. beim übersetzen bekommen ich diesen</p>
</blockquote>
<p>Die Position muss als Iterator übergeben werden. Du kannst zwar aus der Ganzzahl einen Iterator erzeugen, aber das kostet eben Zeit bei einer Liste, weil man die Liste durchlaufen muss bis zur richtigen Position:</p>
<pre><code class="language-cpp">std::list&lt;COORDINATE&gt;::iterator it = sp-&gt;begin();
std::advance(it,pos);
sp-&gt;insert(it,new_coo);
</code></pre>
<p>Mit <a href="http://www.cplusplus.com/reference/std/iterator/advance/" rel="nofollow">advance</a> aus dem &lt;iterator&gt;-Header kannst Du den Iterator bestimmen. Aber im Falle einer Liste dauert das eben, weil der Listen-Iterator nur ++ und -- unterstützt (Bidirektionaler Iterator) und kein + und - (wie ein RandomAccess-Iterator).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1901318</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1901318</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Sun, 23 May 2010 03:20:05 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit lists on Sun, 23 May 2010 08:19:56 GMT]]></title><description><![CDATA[<p>std::list hat keine &quot;Positionen&quot;, sie hat keinen random access. Du kannst nur irgendwo anfangen, z.b. bei begin() und dann vorwärts durchlaufen (oder auch rückwärts).<br />
Bei einem std::vector kannst du an bestimmten Positionen einen Wert setzen.</p>
<pre><code class="language-cpp">vectorXYZ[pos] = Coordinate;
</code></pre>
<p>Das fügt dort aber keinen Wert ein, sondern weist dem dort vorhandenen etwas anderes zu, d.h. es gibt mindestens die Werte an Position 0 bis <code>pos</code> .<br />
Wenn du irgendwelchen &quot;Positionen&quot; einen Wert zuordnen möchtest, bietet sich noch <code>std::map</code> an:</p>
<pre><code class="language-cpp">std::map&lt;int,COORD&gt; xyz;
xyz[pos] = COORD(1,1);
xyz[pos] = COORD(2,1); // voriger wert überschrieben
</code></pre>
<p>Wenn es mehrere Werte zu einer Position gibt, gibt es <code>std::multimap</code> :</p>
<pre><code class="language-cpp">std::multimap&lt;int,COORD&gt; xyz;
xyz[pos] = COORD(1,1);
xyz[pos] = COORD(2,1); // jetzt gibt es 2 Koordinaten zu pos
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1901340</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1901340</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Sun, 23 May 2010 08:19:56 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit lists on Sun, 23 May 2010 11:56:31 GMT]]></title><description><![CDATA[<p>brotbernd schrieb:</p>
<blockquote>
<pre><code class="language-cpp">std::multimap&lt;int,COORD&gt; xyz;
xyz[pos] = COORD(1,1);
xyz[pos] = COORD(2,1); // jetzt gibt es 2 Koordinaten zu pos
</code></pre>
</blockquote>
<p><code>std::multimap</code> hat allerdings keinen <code>operator[]</code> , da die Schlüssel-Wert-Zuordnung nicht mehr eindeutig ist.</p>
<p>Zum Einfügen kann man <code>insert()</code> verwenden, zum Suchen <code>equal_range()</code> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1901453</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1901453</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sun, 23 May 2010 11:56:31 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit lists on Sun, 23 May 2010 12:03:38 GMT]]></title><description><![CDATA[<p>äh ja das stimmt, sorry...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1901457</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1901457</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Sun, 23 May 2010 12:03:38 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mit lists on Sun, 23 May 2010 21:08:09 GMT]]></title><description><![CDATA[<p>Wow, hätte nicht gedacht dass es so intensiv beantwortet wird. Danke an alle!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1901649</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1901649</guid><dc:creator><![CDATA[darkfate]]></dc:creator><pubDate>Sun, 23 May 2010 21:08:09 GMT</pubDate></item></channel></rss>