<?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[Problem mit Selbstgeschriebenem Iterator]]></title><description><![CDATA[<p>Hallo ...</p>
<p>Ich möchte eine Selbstgeschriebene Kontrollabstraktion die in den Grundzügen<br />
einem STL Forward Iterator entspricht zusammen mit der for_each funktion<br />
zu verwenden.</p>
<p>Leider weisst for_each den Iterator ab. Da die Funktion ein Atribut namens<br />
iterator_category überprüft. Gibt es da einen bekannten Workaround, bzw. eine<br />
möglichkeit dem Iterator die iterator_category zu verleihen?</p>
<p>Die Struktur des Iterators sieht im moment so aus:</p>
<pre><code>class iterator
{
public:
    friend class List;
    iterator(ListElem*);
    iterator(const iterator&amp;);
    T&amp; operator*();
    iterator&amp; operator++();
    iterator operator++(int);
    bool operator==(const iterator&amp;) const;
    bool operator!=(const iterator&amp;) const;
private:
    ListElem* pCursor;
};
</code></pre>
<p>Der Iterator ist in eine Klasse zur Realisierung einer einfach<br />
verketteten Liste eingebettet. Das STL Pendant zu verwenden ist leider<br />
hier nicht möglich. Die Liste und der Iterator sind allerdings eingehend<br />
nach Black Box Methode getestet, weshalb ich von deren Richtigkeit ausgehe.</p>
<p>Ich hoffe mir kann jemand hierbei weiterhelfen<br />
Vielen Dank schonmal im voraus.<br />
Patrick</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/203970/problem-mit-selbstgeschriebenem-iterator</link><generator>RSS for Node</generator><lastBuildDate>Thu, 08 Oct 2026 03:58:12 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/203970.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 28 Jan 2008 17:59:04 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit Selbstgeschriebenem Iterator on Mon, 28 Jan 2008 17:59:04 GMT]]></title><description><![CDATA[<p>Hallo ...</p>
<p>Ich möchte eine Selbstgeschriebene Kontrollabstraktion die in den Grundzügen<br />
einem STL Forward Iterator entspricht zusammen mit der for_each funktion<br />
zu verwenden.</p>
<p>Leider weisst for_each den Iterator ab. Da die Funktion ein Atribut namens<br />
iterator_category überprüft. Gibt es da einen bekannten Workaround, bzw. eine<br />
möglichkeit dem Iterator die iterator_category zu verleihen?</p>
<p>Die Struktur des Iterators sieht im moment so aus:</p>
<pre><code>class iterator
{
public:
    friend class List;
    iterator(ListElem*);
    iterator(const iterator&amp;);
    T&amp; operator*();
    iterator&amp; operator++();
    iterator operator++(int);
    bool operator==(const iterator&amp;) const;
    bool operator!=(const iterator&amp;) const;
private:
    ListElem* pCursor;
};
</code></pre>
<p>Der Iterator ist in eine Klasse zur Realisierung einer einfach<br />
verketteten Liste eingebettet. Das STL Pendant zu verwenden ist leider<br />
hier nicht möglich. Die Liste und der Iterator sind allerdings eingehend<br />
nach Black Box Methode getestet, weshalb ich von deren Richtigkeit ausgehe.</p>
<p>Ich hoffe mir kann jemand hierbei weiterhelfen<br />
Vielen Dank schonmal im voraus.<br />
Patrick</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1445226</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445226</guid><dc:creator><![CDATA[dark-eye]]></dc:creator><pubDate>Mon, 28 Jan 2008 17:59:04 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Selbstgeschriebenem Iterator on Mon, 28 Jan 2008 18:10:09 GMT]]></title><description><![CDATA[<p>Deine Klasse muss eben die <code>std::iterator_traits</code> spezialisieren, das ist Voraussetzung für eine Iterator-Klasse. Am einfachsten geht das, indem Du es durch Erben von <code>std::iterator&lt;&gt;</code> implizit machst. Schau in der Doku Deiner Wahl nach, welche Typenparameter dabei vonnöten sind (off the top of my head: Typ, Iterator-Kategorie, …).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1445238</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445238</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Mon, 28 Jan 2008 18:10:09 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Selbstgeschriebenem Iterator on Mon, 28 Jan 2008 18:29:33 GMT]]></title><description><![CDATA[<p>std::iterator ist tatsächlich der einfachste Weg, da man sich hier auf das Notwendigste beschränken kann, denn die restlichen Defaults sind fast immer richtig:</p>
<pre><code class="language-cpp">class iterator : public std::iterator&lt;forward_iterator_tag,T&gt;
{
public:
    friend class List;
    iterator(); // zwingend, muss aber keine Initialisierung durchführen, d.h. der Iterator darf singulär sein
    iterator(ListElem*);
    iterator(const iterator&amp;); // für Iteratoren sehr ungewöhnlich, den selbst definieren zu müssen
    T&amp; operator*(); // muss const sein
    T* operator-&gt;() const; // nötig, falls T eine Klasse ist/sein kann
    iterator&amp; operator++();
    iterator operator++(int);
    bool operator==(const iterator&amp;) const;
    bool operator!=(const iterator&amp;) const;
private:
    ListElem* pCursor;
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1445258</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445258</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Mon, 28 Jan 2008 18:29:33 GMT</pubDate></item></channel></rss>