<?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[wert auf iterator addieren funktioniert nicht :(]]></title><description><![CDATA[<pre><code class="language-cpp">SDL_Button* SDL_Dropdown::getButton(int index)
{
	std::list&lt;SDL_Button&gt;::iterator i = ddButtons.begin()+index;
	return &amp;(*i);
}
</code></pre>
<p>-&gt;</p>
<blockquote>
<p>--------------------Konfiguration: PixGraph - Win32 Debug--------------------<br />
Kompilierung läuft...<br />
SDL_Dropdown.cpp<br />
E:\Uni\code\PixGraph\SDL_Dropdown.cpp(20) : error C2784: 'class std::basic_string&lt;_E,_Tr,_A&gt; __cdecl std::operator +(const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;,const _E)' : Vorlagenargument fuer 'const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;' von 'clas<br />
s std::list&lt;class SDL_Button,class std::allocator&lt;class SDL_Button&gt; &gt;::iterator' konnte nicht hergeleitet werden<br />
E:\Uni\code\PixGraph\SDL_Dropdown.cpp(20) : error C2784: 'class std::basic_string&lt;_E,_Tr,_A&gt; __cdecl std::operator +(const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;,const _E)' : Vorlagenargument fuer 'const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;' von 'clas<br />
s std::list&lt;class SDL_Button,class std::allocator&lt;class SDL_Button&gt; &gt;::iterator' konnte nicht hergeleitet werden<br />
E:\Uni\code\PixGraph\SDL_Dropdown.cpp(20) : error C2784: 'class std::basic_string&lt;_E,_Tr,_A&gt; __cdecl std::operator +(const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;,const _E)' : Vorlagenargument fuer 'const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;' von 'clas<br />
s std::list&lt;class SDL_Button,class std::allocator&lt;class SDL_Button&gt; &gt;::iterator' konnte nicht hergeleitet werden<br />
E:\Uni\code\PixGraph\SDL_Dropdown.cpp(20) : error C2784: 'class std::basic_string&lt;_E,_Tr,_A&gt; __cdecl std::operator +(const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;,const _E)' : Vorlagenargument fuer 'const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;' von 'clas<br />
s std::list&lt;class SDL_Button,class std::allocator&lt;class SDL_Button&gt; &gt;::iterator' konnte nicht hergeleitet werden<br />
E:\Uni\code\PixGraph\SDL_Dropdown.cpp(20) : error C2784: 'class std::basic_string&lt;_E,_Tr,_A&gt; __cdecl std::operator +(const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;,const _E *)' : Vorlagenargument fuer 'const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;' von 'cl<br />
ass std::list&lt;class SDL_Button,class std::allocator&lt;class SDL_Button&gt; &gt;::iterator' konnte nicht hergeleitet werden<br />
E:\Uni\code\PixGraph\SDL_Dropdown.cpp(20) : error C2784: 'class std::basic_string&lt;_E,_Tr,_A&gt; __cdecl std::operator +(const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;,const _E *)' : Vorlagenargument fuer 'const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;' von 'cl<br />
ass std::list&lt;class SDL_Button,class std::allocator&lt;class SDL_Button&gt; &gt;::iterator' konnte nicht hergeleitet werden<br />
E:\Uni\code\PixGraph\SDL_Dropdown.cpp(20) : error C2784: 'class std::basic_string&lt;_E,_Tr,_A&gt; __cdecl std::operator +(const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;,const _E *)' : Vorlagenargument fuer 'const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;' von 'cl<br />
ass std::list&lt;class SDL_Button,class std::allocator&lt;class SDL_Button&gt; &gt;::iterator' konnte nicht hergeleitet werden<br />
E:\Uni\code\PixGraph\SDL_Dropdown.cpp(20) : error C2784: 'class std::basic_string&lt;_E,_Tr,_A&gt; __cdecl std::operator +(const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;,const _E *)' : Vorlagenargument fuer 'const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;' von 'cl<br />
ass std::list&lt;class SDL_Button,class std::allocator&lt;class SDL_Button&gt; &gt;::iterator' konnte nicht hergeleitet werden<br />
E:\Uni\code\PixGraph\SDL_Dropdown.cpp(20) : error C2784: 'class std::basic_string&lt;_E,_Tr,_A&gt; __cdecl std::operator +(const _E,const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;)' : Vorlagenargument fuer 'const ' von 'class std::list&lt;class SDL_Button,class s<br />
td::allocator&lt;class SDL_Button&gt; &gt;::iterator' konnte nicht hergeleitet werden<br />
E:\Uni\code\PixGraph\SDL_Dropdown.cpp(20) : error C2784: 'class std::basic_string&lt;_E,_Tr,_A&gt; __cdecl std::operator +(const _E *,const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;)' : Vorlagenargument fuer 'const *' von 'class std::list&lt;class SDL_Button,cla<br />
ss std::allocator&lt;class SDL_Button&gt; &gt;::iterator' konnte nicht hergeleitet werden<br />
E:\Uni\code\PixGraph\SDL_Dropdown.cpp(20) : error C2784: 'class std::basic_string&lt;_E,_Tr,_A&gt; __cdecl std::operator +(const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;,const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;)' : Vorlagenargument fuer 'const class std::ba<br />
sic_string&lt;_E,_Tr,_A&gt; &amp;' von 'class std::list&lt;class SDL_Button,class std::allocator&lt;class SDL_Button&gt; &gt;::iterator' konnte nicht hergeleitet werden<br />
E:\Uni\code\PixGraph\SDL_Dropdown.cpp(20) : error C2784: 'class std::basic_string&lt;_E,_Tr,_A&gt; __cdecl std::operator +(const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;,const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;)' : Vorlagenargument fuer 'const class std::ba<br />
sic_string&lt;_E,_Tr,_A&gt; &amp;' von 'class std::list&lt;class SDL_Button,class std::allocator&lt;class SDL_Button&gt; &gt;::iterator' konnte nicht hergeleitet werden<br />
E:\Uni\code\PixGraph\SDL_Dropdown.cpp(20) : error C2784: 'class std::basic_string&lt;_E,_Tr,_A&gt; __cdecl std::operator +(const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;,const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;)' : Vorlagenargument fuer 'const class std::ba<br />
sic_string&lt;_E,_Tr,_A&gt; &amp;' von 'class std::list&lt;class SDL_Button,class std::allocator&lt;class SDL_Button&gt; &gt;::iterator' konnte nicht hergeleitet werden<br />
E:\Uni\code\PixGraph\SDL_Dropdown.cpp(20) : error C2784: 'class std::basic_string&lt;_E,_Tr,_A&gt; __cdecl std::operator +(const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;,const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;)' : Vorlagenargument fuer 'const class std::ba<br />
sic_string&lt;_E,_Tr,_A&gt; &amp;' von 'class std::list&lt;class SDL_Button,class std::allocator&lt;class SDL_Button&gt; &gt;::iterator' konnte nicht hergeleitet werden<br />
E:\Uni\code\PixGraph\SDL_Dropdown.cpp(20) : error C2784: 'class std::reverse_iterator&lt;_RI,_Ty,_Rt,_Pt,_D&gt; __cdecl std::operator +(_D,const class std::reverse_iterator&lt;_RI,_Ty,_Rt,_Pt,_D&gt; &amp;)' : Vorlagenargument fuer '' von 'class std::list&lt;class SDL_<br />
Button,class std::allocator&lt;class SDL_Button&gt; &gt;::iterator' konnte nicht hergeleitet werden<br />
E:\Uni\code\PixGraph\SDL_Dropdown.cpp(20) : error C2676: Binaerer Operator '+' : 'class std::list&lt;class SDL_Button,class std::allocator&lt;class SDL_Button&gt; &gt;::iterator' definiert diesen Operator oder eine Konvertierung in einen fuer den vordefinierten<br />
Operator geeigneten Typ nicht<br />
Fehler beim Ausführen von cl.exe.</p>
<p>PixGraph.exe - 16 Fehler, 0 Warnung(en)</p>
</blockquote>
<p>verstehe ich ned <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/186964/wert-auf-iterator-addieren-funktioniert-nicht</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 14:50:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/186964.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 14 Jul 2007 08:21:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to wert auf iterator addieren funktioniert nicht :( on Sat, 14 Jul 2007 08:21:13 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">SDL_Button* SDL_Dropdown::getButton(int index)
{
	std::list&lt;SDL_Button&gt;::iterator i = ddButtons.begin()+index;
	return &amp;(*i);
}
</code></pre>
<p>-&gt;</p>
<blockquote>
<p>--------------------Konfiguration: PixGraph - Win32 Debug--------------------<br />
Kompilierung läuft...<br />
SDL_Dropdown.cpp<br />
E:\Uni\code\PixGraph\SDL_Dropdown.cpp(20) : error C2784: 'class std::basic_string&lt;_E,_Tr,_A&gt; __cdecl std::operator +(const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;,const _E)' : Vorlagenargument fuer 'const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;' von 'clas<br />
s std::list&lt;class SDL_Button,class std::allocator&lt;class SDL_Button&gt; &gt;::iterator' konnte nicht hergeleitet werden<br />
E:\Uni\code\PixGraph\SDL_Dropdown.cpp(20) : error C2784: 'class std::basic_string&lt;_E,_Tr,_A&gt; __cdecl std::operator +(const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;,const _E)' : Vorlagenargument fuer 'const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;' von 'clas<br />
s std::list&lt;class SDL_Button,class std::allocator&lt;class SDL_Button&gt; &gt;::iterator' konnte nicht hergeleitet werden<br />
E:\Uni\code\PixGraph\SDL_Dropdown.cpp(20) : error C2784: 'class std::basic_string&lt;_E,_Tr,_A&gt; __cdecl std::operator +(const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;,const _E)' : Vorlagenargument fuer 'const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;' von 'clas<br />
s std::list&lt;class SDL_Button,class std::allocator&lt;class SDL_Button&gt; &gt;::iterator' konnte nicht hergeleitet werden<br />
E:\Uni\code\PixGraph\SDL_Dropdown.cpp(20) : error C2784: 'class std::basic_string&lt;_E,_Tr,_A&gt; __cdecl std::operator +(const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;,const _E)' : Vorlagenargument fuer 'const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;' von 'clas<br />
s std::list&lt;class SDL_Button,class std::allocator&lt;class SDL_Button&gt; &gt;::iterator' konnte nicht hergeleitet werden<br />
E:\Uni\code\PixGraph\SDL_Dropdown.cpp(20) : error C2784: 'class std::basic_string&lt;_E,_Tr,_A&gt; __cdecl std::operator +(const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;,const _E *)' : Vorlagenargument fuer 'const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;' von 'cl<br />
ass std::list&lt;class SDL_Button,class std::allocator&lt;class SDL_Button&gt; &gt;::iterator' konnte nicht hergeleitet werden<br />
E:\Uni\code\PixGraph\SDL_Dropdown.cpp(20) : error C2784: 'class std::basic_string&lt;_E,_Tr,_A&gt; __cdecl std::operator +(const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;,const _E *)' : Vorlagenargument fuer 'const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;' von 'cl<br />
ass std::list&lt;class SDL_Button,class std::allocator&lt;class SDL_Button&gt; &gt;::iterator' konnte nicht hergeleitet werden<br />
E:\Uni\code\PixGraph\SDL_Dropdown.cpp(20) : error C2784: 'class std::basic_string&lt;_E,_Tr,_A&gt; __cdecl std::operator +(const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;,const _E *)' : Vorlagenargument fuer 'const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;' von 'cl<br />
ass std::list&lt;class SDL_Button,class std::allocator&lt;class SDL_Button&gt; &gt;::iterator' konnte nicht hergeleitet werden<br />
E:\Uni\code\PixGraph\SDL_Dropdown.cpp(20) : error C2784: 'class std::basic_string&lt;_E,_Tr,_A&gt; __cdecl std::operator +(const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;,const _E *)' : Vorlagenargument fuer 'const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;' von 'cl<br />
ass std::list&lt;class SDL_Button,class std::allocator&lt;class SDL_Button&gt; &gt;::iterator' konnte nicht hergeleitet werden<br />
E:\Uni\code\PixGraph\SDL_Dropdown.cpp(20) : error C2784: 'class std::basic_string&lt;_E,_Tr,_A&gt; __cdecl std::operator +(const _E,const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;)' : Vorlagenargument fuer 'const ' von 'class std::list&lt;class SDL_Button,class s<br />
td::allocator&lt;class SDL_Button&gt; &gt;::iterator' konnte nicht hergeleitet werden<br />
E:\Uni\code\PixGraph\SDL_Dropdown.cpp(20) : error C2784: 'class std::basic_string&lt;_E,_Tr,_A&gt; __cdecl std::operator +(const _E *,const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;)' : Vorlagenargument fuer 'const *' von 'class std::list&lt;class SDL_Button,cla<br />
ss std::allocator&lt;class SDL_Button&gt; &gt;::iterator' konnte nicht hergeleitet werden<br />
E:\Uni\code\PixGraph\SDL_Dropdown.cpp(20) : error C2784: 'class std::basic_string&lt;_E,_Tr,_A&gt; __cdecl std::operator +(const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;,const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;)' : Vorlagenargument fuer 'const class std::ba<br />
sic_string&lt;_E,_Tr,_A&gt; &amp;' von 'class std::list&lt;class SDL_Button,class std::allocator&lt;class SDL_Button&gt; &gt;::iterator' konnte nicht hergeleitet werden<br />
E:\Uni\code\PixGraph\SDL_Dropdown.cpp(20) : error C2784: 'class std::basic_string&lt;_E,_Tr,_A&gt; __cdecl std::operator +(const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;,const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;)' : Vorlagenargument fuer 'const class std::ba<br />
sic_string&lt;_E,_Tr,_A&gt; &amp;' von 'class std::list&lt;class SDL_Button,class std::allocator&lt;class SDL_Button&gt; &gt;::iterator' konnte nicht hergeleitet werden<br />
E:\Uni\code\PixGraph\SDL_Dropdown.cpp(20) : error C2784: 'class std::basic_string&lt;_E,_Tr,_A&gt; __cdecl std::operator +(const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;,const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;)' : Vorlagenargument fuer 'const class std::ba<br />
sic_string&lt;_E,_Tr,_A&gt; &amp;' von 'class std::list&lt;class SDL_Button,class std::allocator&lt;class SDL_Button&gt; &gt;::iterator' konnte nicht hergeleitet werden<br />
E:\Uni\code\PixGraph\SDL_Dropdown.cpp(20) : error C2784: 'class std::basic_string&lt;_E,_Tr,_A&gt; __cdecl std::operator +(const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;,const class std::basic_string&lt;_E,_Tr,_A&gt; &amp;)' : Vorlagenargument fuer 'const class std::ba<br />
sic_string&lt;_E,_Tr,_A&gt; &amp;' von 'class std::list&lt;class SDL_Button,class std::allocator&lt;class SDL_Button&gt; &gt;::iterator' konnte nicht hergeleitet werden<br />
E:\Uni\code\PixGraph\SDL_Dropdown.cpp(20) : error C2784: 'class std::reverse_iterator&lt;_RI,_Ty,_Rt,_Pt,_D&gt; __cdecl std::operator +(_D,const class std::reverse_iterator&lt;_RI,_Ty,_Rt,_Pt,_D&gt; &amp;)' : Vorlagenargument fuer '' von 'class std::list&lt;class SDL_<br />
Button,class std::allocator&lt;class SDL_Button&gt; &gt;::iterator' konnte nicht hergeleitet werden<br />
E:\Uni\code\PixGraph\SDL_Dropdown.cpp(20) : error C2676: Binaerer Operator '+' : 'class std::list&lt;class SDL_Button,class std::allocator&lt;class SDL_Button&gt; &gt;::iterator' definiert diesen Operator oder eine Konvertierung in einen fuer den vordefinierten<br />
Operator geeigneten Typ nicht<br />
Fehler beim Ausführen von cl.exe.</p>
<p>PixGraph.exe - 16 Fehler, 0 Warnung(en)</p>
</blockquote>
<p>verstehe ich ned <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1325132</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325132</guid><dc:creator><![CDATA[pixartist]]></dc:creator><pubDate>Sat, 14 Jul 2007 08:21:13 GMT</pubDate></item><item><title><![CDATA[Reply to wert auf iterator addieren funktioniert nicht :( on Sat, 14 Jul 2007 08:44:49 GMT]]></title><description><![CDATA[<p>list&lt;T&gt;::iterator ist kein random iterator. geht also nicht.<br />
zum iteratieren in groesseren schritten gibts aehm glaub heisst 'advance' oder so.</p>
<p>Meep Meep</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1325141</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325141</guid><dc:creator><![CDATA[Meep Meep]]></dc:creator><pubDate>Sat, 14 Jul 2007 08:44:49 GMT</pubDate></item><item><title><![CDATA[Reply to wert auf iterator addieren funktioniert nicht :( on Sat, 14 Jul 2007 08:51:31 GMT]]></title><description><![CDATA[<p>Bei da Vorsicht geboten ist. advance macht nix anderes als so oft vorrücken wie man ihm sagt. Das heißt es wird leicht sehr langsam. Wenn Du index-zugriff brauchst, ist std::list nicht die richtige Wahl.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1325145</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325145</guid><dc:creator><![CDATA[Jester]]></dc:creator><pubDate>Sat, 14 Jul 2007 08:51:31 GMT</pubDate></item><item><title><![CDATA[Reply to wert auf iterator addieren funktioniert nicht :( on Sat, 14 Jul 2007 08:57:53 GMT]]></title><description><![CDATA[<p>Jester schrieb:</p>
<blockquote>
<p>Bei da Vorsicht geboten ist. advance macht nix anderes als so oft vorrücken wie man ihm sagt. Das heißt es wird leicht sehr langsam. Wenn Du index-zugriff brauchst, ist std::list nicht die richtige Wahl.</p>
</blockquote>
<p>brauch ich im normalfall nicht, da man selten auf die buttons per index zugreifen muss.</p>
<p>thx</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1325151</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325151</guid><dc:creator><![CDATA[pixartist]]></dc:creator><pubDate>Sat, 14 Jul 2007 08:57:53 GMT</pubDate></item><item><title><![CDATA[Reply to wert auf iterator addieren funktioniert nicht :( on Sun, 15 Jul 2007 02:44:16 GMT]]></title><description><![CDATA[<p>Du könntest trotzdem std::vector oder std::deque nehmen, ist meist besser als std::list.<br />
std::list ist IMHO der Container den man am seltensten braucht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1325627</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325627</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sun, 15 Jul 2007 02:44:16 GMT</pubDate></item><item><title><![CDATA[Reply to wert auf iterator addieren funktioniert nicht :( on Sun, 15 Jul 2007 07:54:23 GMT]]></title><description><![CDATA[<p>warum?Was macht std::list zum schlechteren Container?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1325657</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325657</guid><dc:creator><![CDATA[Basingstoke]]></dc:creator><pubDate>Sun, 15 Jul 2007 07:54:23 GMT</pubDate></item><item><title><![CDATA[Reply to wert auf iterator addieren funktioniert nicht :( on Sun, 15 Jul 2007 09:16:09 GMT]]></title><description><![CDATA[<p>std::list finde ich eigentlich sehr praktisch. Sein vorteil, man kann überall in O(1) Zeit elemente rauswerfen, und neue einfügen, das macht ihn zum idealen Datentyp, um Objekte einer Partikelengine oder Änliches zu speichern. Vector kann da imho nicht mithalten.</p>
<p>Und dass der Vector hinten in konstanter Zeit elemente anfügen kann ist auch nur halb wahr, denn es handelt sich sowei ich weiß intern um ein array, dass wenn die Größe nicht mehr ausreicht den reservierten Speicherbereich verdoppelt, und alles kopiert, das hat dann im Durchschnitt eine konstante Laufzeit, aber bestimmt nicht bei jedem Zugriff gleich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1325679</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325679</guid><dc:creator><![CDATA[Krux]]></dc:creator><pubDate>Sun, 15 Jul 2007 09:16:09 GMT</pubDate></item><item><title><![CDATA[Reply to wert auf iterator addieren funktioniert nicht :( on Sun, 15 Jul 2007 09:32:48 GMT]]></title><description><![CDATA[<p>Woher kommt denn der Index? Ist es nicht im Bereich des möglichen, dort stattdessen einen Iterator zu generieren?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1325691</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325691</guid><dc:creator><![CDATA[.filmor]]></dc:creator><pubDate>Sun, 15 Jul 2007 09:32:48 GMT</pubDate></item><item><title><![CDATA[Reply to wert auf iterator addieren funktioniert nicht :( on Mon, 16 Jul 2007 16:42:06 GMT]]></title><description><![CDATA[<p>Krux schrieb:</p>
<blockquote>
<p>std::list finde ich eigentlich sehr praktisch. Sein vorteil, man kann überall in O(1) Zeit elemente rauswerfen, und neue einfügen, das macht ihn zum idealen Datentyp, um Objekte einer Partikelengine oder Änliches zu speichern. Vector kann da imho nicht mithalten.</p>
</blockquote>
<p>std::list ist in dem Fall &quot;schnell&quot;, aber eben leider nicht schnell. Ich meine O(1) kann 1 nanosekunde heissen oder 2 Stunden. O(1) ist eben nicht gleich O(1).<br />
Gerade für eine Partikelengine (wo die &quot;Identität&quot; der Partikel meist nicht wichtig ist) würde ich *niemals* eine std::list verwenden sondern immer einen std::vector. Zum Rauswerfen von Partikeln swappt man die einfach mit dem letzten Element und macht dann ein pop_back(). Schneller gehts kaum.<br />
Wenns aus irgendeinem Grund trotzdem eine eigene Liste sein soll/muss, dann eine eigene &quot;intrusive list&quot; - die sind nämlich wirklich schnell :^).</p>
<blockquote>
<p>Und dass der Vector hinten in konstanter Zeit elemente anfügen kann ist auch nur halb wahr, denn es handelt sich sowei ich weiß intern um ein array, dass wenn die Größe nicht mehr ausreicht den reservierten Speicherbereich verdoppelt, und alles kopiert, das hat dann im Durchschnitt eine konstante Laufzeit, aber bestimmt nicht bei jedem Zugriff gleich.</p>
</blockquote>
<p>Wenn man den std::vector nicht die ganze Zeit zerstört und neu anlegt ist das egal da irgendwann mal die max. Grösse erreicht ist (meist recht bald), und ab dem Moment wird garkeine Speicheranforderung mehr gemacht und nixmehr rumkopiert.</p>
<p>Was mich an std::list stört: es wird (üblicherweise) pro Element eine Speicheranforderung gemacht. Ohne einen eigenen Allocator zu übergeben ist das oft tödlich für die Performance. Das tolle an std::vector ist ja gerade dass sich dieser den Speicher &quot;merkt&quot; und nichtmehr hergibt.</p>
<p>Wenn man natürlich die speziellen Features von std::list unbedingt braucht und nicht drum herum arbeiten kann (wie eben swap+pop_back statt erase mitten in einem std::vector), dann soll man natürlich auch std::list verwenden.</p>
<p>Dass std::list der Container ist den ich am seltensten brauche ist aber einfach ein Erfahrungswert. Natürlich ist das abhängig von der Art der Programme die man schreibt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1326716</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1326716</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 16 Jul 2007 16:42:06 GMT</pubDate></item><item><title><![CDATA[Reply to wert auf iterator addieren funktioniert nicht :( on Mon, 16 Jul 2007 17:12:51 GMT]]></title><description><![CDATA[<p><a href="http://c-plusplus.net/forum/viewtopic-var-p-is-1320723.html" rel="nofollow">http://c-plusplus.net/forum/viewtopic-var-p-is-1320723.html</a> <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/1326732</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1326732</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 16 Jul 2007 17:12:51 GMT</pubDate></item></channel></rss>