<?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[doppelt verkettete Liste - Ueberladung des Index-operators]]></title><description><![CDATA[<p>Mal eine grundsaetzliche Frage bei der Programmierung einer verketteten Listenklasse. Was gibt bei Ueberladung der Index-Operator zurueck? Listenelemente, damit man in seinen Methoden gemuetlich mit dem Index-Operator arbeiten kann oder Inhalt von Listenelementen, damit die Klasse von aussen einfacher zu nutzen ist?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/119866/doppelt-verkettete-liste-ueberladung-des-index-operators</link><generator>RSS for Node</generator><lastBuildDate>Sat, 22 Aug 2026 02:27:34 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/119866.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 06 Sep 2005 12:33:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to doppelt verkettete Liste - Ueberladung des Index-operators on Tue, 06 Sep 2005 12:33:54 GMT]]></title><description><![CDATA[<p>Mal eine grundsaetzliche Frage bei der Programmierung einer verketteten Listenklasse. Was gibt bei Ueberladung der Index-Operator zurueck? Listenelemente, damit man in seinen Methoden gemuetlich mit dem Index-Operator arbeiten kann oder Inhalt von Listenelementen, damit die Klasse von aussen einfacher zu nutzen ist?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/866190</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/866190</guid><dc:creator><![CDATA[PunI*0R]]></dc:creator><pubDate>Tue, 06 Sep 2005 12:33:54 GMT</pubDate></item><item><title><![CDATA[Reply to doppelt verkettete Liste - Ueberladung des Index-operators on Tue, 06 Sep 2005 12:39:32 GMT]]></title><description><![CDATA[<p>Gute Frage... hängt davon ab was du damit machen möchtest...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/866199</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/866199</guid><dc:creator><![CDATA[Mathias]]></dc:creator><pubDate>Tue, 06 Sep 2005 12:39:32 GMT</pubDate></item><item><title><![CDATA[Reply to doppelt verkettete Liste - Ueberladung des Index-operators on Tue, 06 Sep 2005 12:49:15 GMT]]></title><description><![CDATA[<p>Man gibt gar nichts zurück weil man keinen Index-Op definiert (die std::list definiert mit Absicht keinen), das widerspricht der Idee einer Liste.</p>
<p>Wie auch immer für Vektoren geht's so (ohne bounds-checking):</p>
<pre><code class="language-cpp">template&lt;typename T&gt;
T&amp; Vector&lt;T&gt;::operator[](int index) {  //Für nicht-const
  return *(array+i);
};

template&lt;typename T&gt;
const T&amp; Vector&lt;T&gt;::operator[](int index) const {  //Für const
  return *(array+i);
};
</code></pre>
<p>//Edit: Um durch ne Liste zu wandern verwendet man Iteratoren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/866210</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/866210</guid><dc:creator><![CDATA[GPC]]></dc:creator><pubDate>Tue, 06 Sep 2005 12:49:15 GMT</pubDate></item><item><title><![CDATA[Reply to doppelt verkettete Liste - Ueberladung des Index-operators on Tue, 06 Sep 2005 12:49:52 GMT]]></title><description><![CDATA[<p>Moeglichst viel.. Erstmal kommt die in Verbindung mit meiner Factory zum Einsatz und dann denke ich mal immmer wenn ich Sie brauche.</p>
<p>Ups, das wusste ich nicht. Hmm dann wirds halt keine reine Liste..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/866211</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/866211</guid><dc:creator><![CDATA[PunI*0R]]></dc:creator><pubDate>Tue, 06 Sep 2005 12:49:52 GMT</pubDate></item><item><title><![CDATA[Reply to doppelt verkettete Liste - Ueberladung des Index-operators on Tue, 06 Sep 2005 12:54:00 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/6287">@GPC</a>: Hast du mal nen Index-Op ueberladen, in nem Prog von dir?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/866220</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/866220</guid><dc:creator><![CDATA[PunI*0R]]></dc:creator><pubDate>Tue, 06 Sep 2005 12:54:00 GMT</pubDate></item><item><title><![CDATA[Reply to doppelt verkettete Liste - Ueberladung des Index-operators on Tue, 06 Sep 2005 12:56:20 GMT]]></title><description><![CDATA[<p>PunI$0R schrieb:</p>
<blockquote>
<p>Ups, das wusste ich nicht. Hmm dann wirds halt keine reine Liste..</p>
</blockquote>
<p>Dann wird deine Liste lahm, das sähe dann wahrscheinlich so aus:</p>
<pre><code class="language-cpp">template&lt;typename T&gt;
T&amp; Liste&lt;T&gt;::operator[](int index) {
  ListNode&lt;T&gt; *node = head;
  for (int i=0;i!=index;++i)
    node = node-&gt;next;
  return node-&gt;get_value();
};
</code></pre>
<p>Je mehr Elemente in der Liste, desto länger dauert der Spaß <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /></p>
<p>//Edit: Im Ernst, nimm lieber Iteratoren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/866223</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/866223</guid><dc:creator><![CDATA[GPC]]></dc:creator><pubDate>Tue, 06 Sep 2005 12:56:20 GMT</pubDate></item><item><title><![CDATA[Reply to doppelt verkettete Liste - Ueberladung des Index-operators on Tue, 06 Sep 2005 13:00:39 GMT]]></title><description><![CDATA[<p>Naja.. verdammt, stimmt im Grunde nich so doll..<br />
Ich sollte nochmal drueber nachdenken</p>
<p>//Edit Hab noch nie was mit nem Iterator gemacht..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/866228</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/866228</guid><dc:creator><![CDATA[PunI*0R]]></dc:creator><pubDate>Tue, 06 Sep 2005 13:00:39 GMT</pubDate></item><item><title><![CDATA[Reply to doppelt verkettete Liste - Ueberladung des Index-operators on Tue, 06 Sep 2005 13:06:31 GMT]]></title><description><![CDATA[<p>Verkettete Liste is eh eigentlich relativ langsam aufgrund des nichtwahlfreien Zugriffs, weil wenn man ein bestimmtes Element sucht, muss man erst die komplette Liste bis zu diesem Element durchlaufen, also hat man damit Aufwand O(n)...Würde dafür besser nen Baum in Erwägung ziehen, da der mit O(log(n)) arbeitet</p>
]]></description><link>https://www.c-plusplus.net/forum/post/866233</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/866233</guid><dc:creator><![CDATA[Vorden]]></dc:creator><pubDate>Tue, 06 Sep 2005 13:06:31 GMT</pubDate></item><item><title><![CDATA[Reply to doppelt verkettete Liste - Ueberladung des Index-operators on Tue, 06 Sep 2005 13:10:57 GMT]]></title><description><![CDATA[<p>hmm, also mein Kollege hat eine super verkettete Listenklasse mit der er ne 60MB-txt Datei innerhalb kuerzester Zeit im Speicher hatte und das ohne viel Speicher drumrum zu verschwenden. Das war schon geil...</p>
<p>//Edit: wo finde ich was ueber Iteratoren..?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/866241</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/866241</guid><dc:creator><![CDATA[PunI*0R]]></dc:creator><pubDate>Tue, 06 Sep 2005 13:10:57 GMT</pubDate></item><item><title><![CDATA[Reply to doppelt verkettete Liste - Ueberladung des Index-operators on Tue, 06 Sep 2005 13:11:24 GMT]]></title><description><![CDATA[<p>PunI$0R schrieb:</p>
<blockquote>
<p>hmm, also mein Kollege hat eine super verkettete Listenklasse mit der er ne 60MB-txt Datei innerhalb kuerzester Zeit im Speicher hatte und das ohne viel Speicher drumrum zu verschwenden. Das war schon geil...</p>
</blockquote>
<p>das Problem das angesprochen wurde bezieht sich auch nicht auf die grösse eines Elementes ,sondern auf die Anzahl der elemente. Stell dir vor du hast 600 000 elemente und willst ans 300 000ste ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/866243</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/866243</guid><dc:creator><![CDATA[shapeless]]></dc:creator><pubDate>Tue, 06 Sep 2005 13:11:24 GMT</pubDate></item><item><title><![CDATA[Reply to doppelt verkettete Liste - Ueberladung des Index-operators on Tue, 06 Sep 2005 13:26:33 GMT]]></title><description><![CDATA[<p>Ja, sry bin was schwer von Begriff, gerade <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/866260</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/866260</guid><dc:creator><![CDATA[PunI*0R]]></dc:creator><pubDate>Tue, 06 Sep 2005 13:26:33 GMT</pubDate></item><item><title><![CDATA[Reply to doppelt verkettete Liste - Ueberladung des Index-operators on Tue, 06 Sep 2005 13:33:14 GMT]]></title><description><![CDATA[<p>PunI$0R schrieb:</p>
<blockquote>
<p>Ja, sry bin was schwer von Begriff, gerade <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>
</blockquote>
<p>Die angesprochene Schwachstelle einer Liste ist die Tatsache, dass man durch die Elemente iterieren muss,um zu einem bestimmten element zu gelangen.<br />
Wenn du also zu einem Element in der Mitte willst, musst du sie vom anfang bis zur mitte &quot;durchlaufen&quot;. also ist die Zugriffszeit wie gesagt proportional zur Länge.<br />
Sprich je länger die Liste, desto länger dauert der Zugriff...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/866279</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/866279</guid><dc:creator><![CDATA[shapeless]]></dc:creator><pubDate>Tue, 06 Sep 2005 13:33:14 GMT</pubDate></item><item><title><![CDATA[Reply to doppelt verkettete Liste - Ueberladung des Index-operators on Tue, 06 Sep 2005 13:40:44 GMT]]></title><description><![CDATA[<p>Ja das war mir schon die ganze Zeit klar nur ich hab Vordens Beitrag nich so verstanden wie ers meinte <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>
<pre><code>for(m_poObj = m_pofirstElement ; m_poObj ; m_poObj = m_poObj-&gt;poNext)
{};
</code></pre>
<p>Sowas aehnliches duerfte doch eigentlich schon gut schnell sein...?</p>
<p>//Edit: Klar bei 300000 Elementen kann es das auch nicht mehr..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/866289</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/866289</guid><dc:creator><![CDATA[PunI*0R]]></dc:creator><pubDate>Tue, 06 Sep 2005 13:40:44 GMT</pubDate></item><item><title><![CDATA[Reply to doppelt verkettete Liste - Ueberladung des Index-operators on Tue, 06 Sep 2005 17:46:08 GMT]]></title><description><![CDATA[<p>Eine Liste ist auch dazu da, um schnell an beliebigen Positionen einfügen/löschen zu können, und soll keine Bäume(welcher Art auch immer) ersetzen um möglichst schnell zu suchen.</p>
<p>Btw. Wenn ich nen Iterator in der Mitte der Liste stehen hab, dann kann ich mit dem vor und zurück iterieren und hab somit relativ kurze Zugriffszeiten auf die Elemente in der Mitte! Es stimmt also nicht dass ich jedesmal über die komplette Liste drüber muss.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/866459</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/866459</guid><dc:creator><![CDATA[GPC]]></dc:creator><pubDate>Tue, 06 Sep 2005 17:46:08 GMT</pubDate></item><item><title><![CDATA[Reply to doppelt verkettete Liste - Ueberladung des Index-operators on Tue, 06 Sep 2005 17:54:27 GMT]]></title><description><![CDATA[<p>GPC schrieb:</p>
<blockquote>
<p>Eine Liste ist auch dazu da, um schnell an beliebigen Positionen einfügen/löschen zu können, und soll keine Bäume(welcher Art auch immer) ersetzen um möglichst schnell zu suchen.</p>
<p>Btw. Wenn ich nen Iterator in der Mitte der Liste stehen hab, dann kann ich mit dem vor und zurück iterieren und hab somit relativ kurze Zugriffszeiten auf die Elemente in der Mitte! Es stimmt also nicht dass ich jedesmal über die komplette Liste drüber muss.</p>
</blockquote>
<p>nee natürlich nicht jedes mal, aber es ist dennoch so, dass man um den iterator dorthinzubekommen,dennoch einmal bis dorthin durchlaufen muss.<br />
Was den Einsatz von listen angeht, gebe ich dir natürlich volkommen recht, es ging mir nur darum es dem OP klarzumachen, da er es zu diesem Zeipunkt noch nicht zu wissen schien. Dem ist aber nicht so und von daher wohl allen beteiligten klar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/866466</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/866466</guid><dc:creator><![CDATA[shapeless]]></dc:creator><pubDate>Tue, 06 Sep 2005 17:54:27 GMT</pubDate></item></channel></rss>