<?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[Kreisbezug]]></title><description><![CDATA[<p>Gibt es in der STL ein Template für Kreisbezüge?<br />
Ich möchte sowas wie 5 Personen im Kreis nachbilden:<br />
wenn ich vom letzten einen weiter gehe, möchte ich beim ersten wieder ankommen und zurück...</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/183580/kreisbezug</link><generator>RSS for Node</generator><lastBuildDate>Wed, 23 Sep 2026 09:20:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/183580.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 06 Jun 2007 12:32:15 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Kreisbezug on Wed, 06 Jun 2007 12:32:15 GMT]]></title><description><![CDATA[<p>Gibt es in der STL ein Template für Kreisbezüge?<br />
Ich möchte sowas wie 5 Personen im Kreis nachbilden:<br />
wenn ich vom letzten einen weiter gehe, möchte ich beim ersten wieder ankommen und zurück...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1299988</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1299988</guid><dc:creator><![CDATA[Kreis]]></dc:creator><pubDate>Wed, 06 Jun 2007 12:32:15 GMT</pubDate></item><item><title><![CDATA[Reply to Kreisbezug on Wed, 06 Jun 2007 12:44:34 GMT]]></title><description><![CDATA[<p>Nicht wirklich, aber du kannst dir eine geeignete verkettete Liste selber schreiben, wenn du es brauchst (jedes Element hat einen Zeiger auf seinen Nachfolger und von außen hast du einen Zeiger auf den &quot;ersten&quot; - der Nachfolger des letzten Elements ist wieder der Listenanfang).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1300001</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1300001</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 06 Jun 2007 12:44:34 GMT</pubDate></item><item><title><![CDATA[Reply to Kreisbezug on Wed, 06 Jun 2007 12:51:08 GMT]]></title><description><![CDATA[<p>Du kannst auch vom letzten Feldelement zum ersten hüpfen, dann hast du deinen Kreis und brauchst dich nicht stundenlang mit ner verketteten Liste quälen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1300010</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1300010</guid><dc:creator><![CDATA[proggingmania]]></dc:creator><pubDate>Wed, 06 Jun 2007 12:51:08 GMT</pubDate></item><item><title><![CDATA[Reply to Kreisbezug on Wed, 06 Jun 2007 13:54:16 GMT]]></title><description><![CDATA[<p>Für Container aus der STL (auch die verketteten Listen) kannst du einen angepassten Iterator schreiben. Hier ist ein Anfang als lauffähiges Beispiel:</p>
<pre><code class="language-cpp">#include &lt;list&gt;
#include &lt;iterator&gt;
#include &lt;iostream&gt;

using namespace std;

template&lt;typename T, template &lt;typename&gt; class TList = list&gt;
class cyclic_iterator
{
    TList&lt;T&gt; &amp;m_theList;
    typename TList&lt;T&gt;::iterator m_iter;
public:
    cyclic_iterator(TList&lt;T&gt; &amp;theList)
            : m_theList(theList),
              m_iter(theList.begin())
    {
    }

    void operator++()
    {
        ++m_iter;
        if (m_iter == m_theList.end())
            m_iter = m_theList.begin();
    }

    T &amp;operator*()
    {
        return *m_iter;
    }
};

int main()
{
    list&lt;int&gt; myList;
    myList.push_back(4711);
    myList.push_back(13);
    cyclic_iterator&lt;int&gt; cycle(myList);

    for(int i = 0; i &lt; 5; ++i, ++cycle)
        cout &lt;&lt; *cycle &lt;&lt; &quot;\n&quot;;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1300071</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1300071</guid><dc:creator><![CDATA[iterier0r]]></dc:creator><pubDate>Wed, 06 Jun 2007 13:54:16 GMT</pubDate></item><item><title><![CDATA[Reply to Kreisbezug on Wed, 06 Jun 2007 15:56:56 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#define RUNDHERUM_BIS_SCHWINDELIG_WIRD int main()

RUNDHERUM_BIS_SCHWINDELIG_WIRD 
{
	int i=0;

	char *fuenf_im_karusell[] = { &quot;Miss Piggy&quot;, &quot;Minnie Maus&quot;, &quot;Kermit&quot;, &quot;Donald&quot;, &quot;CStoll&quot;, 0 };

	while( fuenf_im_karusell[i] )
	{
		cout &lt;&lt; fuenf_im_karusell[i++] &lt;&lt; endl;
		if ( !fuenf_im_karusell[i] ) i = 0;
	}

	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1300186</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1300186</guid><dc:creator><![CDATA[proggingmania]]></dc:creator><pubDate>Wed, 06 Jun 2007 15:56:56 GMT</pubDate></item><item><title><![CDATA[Reply to Kreisbezug on Thu, 07 Jun 2007 07:00:00 GMT]]></title><description><![CDATA[<p>Ist da auch noch ein sechster Platz frei ?<br />
Will mal ne Runde mitfahren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1300485</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1300485</guid><dc:creator><![CDATA[Karusselfahrer]]></dc:creator><pubDate>Thu, 07 Jun 2007 07:00:00 GMT</pubDate></item><item><title><![CDATA[Reply to Kreisbezug on Thu, 07 Jun 2007 11:05:47 GMT]]></title><description><![CDATA[<p>@Iterat0r</p>
<p>das sieht gut aus, aber lässt sich mit VC++ 2003 nicht kompilieren:</p>
<p>error C3201: Die Vorlagenparameterliste für die Klassenvorlage 'std::list' stimmt nicht mit der Vorlagenparameterliste für den Vorlagenparameter 'TList' überein<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1300638</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1300638</guid><dc:creator><![CDATA[Kreis]]></dc:creator><pubDate>Thu, 07 Jun 2007 11:05:47 GMT</pubDate></item><item><title><![CDATA[Reply to Kreisbezug on Thu, 07 Jun 2007 12:28:48 GMT]]></title><description><![CDATA[<p>Das liegt wohl daran, daß list&lt;&gt; zwei Template-Parameter hat (der zweite ist der Allokator und fällt im täglichen Bedarf nicht auf - aber für diese Template-Template-Parameter brauchst du ihn). Versuch's mal so:</p>
<pre><code class="language-cpp">template&lt;typename T,typename C = list&lt;T&gt; &gt;
class cyclic_iterator
{...};
</code></pre>
<p>(btw, die Adapter-Iteratoren der STL sind auch nicht mit Templates instanziiert, sondern mit Template-Spezialisierungen ;))</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1300700</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1300700</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 07 Jun 2007 12:28:48 GMT</pubDate></item></channel></rss>