<?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[Bestimmten Bereich&#x2F;Elemente einer std::list mit delete freigeben]]></title><description><![CDATA[<p>habe eine liste:</p>
<pre><code class="language-cpp">std::list&lt;ELEM*&gt; LIST;

std::list&lt;ELEM*::Iterator A=...,B=...;

LIST.erase(A,B);
</code></pre>
<p>gibts es ne funktion welche genau für den beriech &quot;delete ausführt&quot;?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/186555/bestimmten-bereich-elemente-einer-std-list-mit-delete-freigeben</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 10:20:06 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/186555.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 10 Jul 2007 08:42:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Bestimmten Bereich&#x2F;Elemente einer std::list mit delete freigeben on Tue, 10 Jul 2007 08:42:38 GMT]]></title><description><![CDATA[<p>habe eine liste:</p>
<pre><code class="language-cpp">std::list&lt;ELEM*&gt; LIST;

std::list&lt;ELEM*::Iterator A=...,B=...;

LIST.erase(A,B);
</code></pre>
<p>gibts es ne funktion welche genau für den beriech &quot;delete ausführt&quot;?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1322046</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1322046</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Tue, 10 Jul 2007 08:42:38 GMT</pubDate></item><item><title><![CDATA[Reply to Bestimmten Bereich&#x2F;Elemente einer std::list mit delete freigeben on Tue, 10 Jul 2007 08:44:52 GMT]]></title><description><![CDATA[<p>for_each() (du mußt ihr nur dazusagen, was sie mit den betroffenen Elementen machen soll):</p>
<pre><code class="language-cpp">void del_elem(ELEM* ptr)
{ delete ptr; }

...
for_each(A,B,del_elem);
LIST.erase(A,B);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1322049</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1322049</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 10 Jul 2007 08:44:52 GMT</pubDate></item><item><title><![CDATA[Reply to Bestimmten Bereich&#x2F;Elemente einer std::list mit delete freigeben on Tue, 10 Jul 2007 08:47:43 GMT]]></title><description><![CDATA[<p>das problem ist aber das del_elem dann eine member funktion ist , und dann funzt das nich mehr ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1322050</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1322050</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Tue, 10 Jul 2007 08:47:43 GMT</pubDate></item><item><title><![CDATA[Reply to Bestimmten Bereich&#x2F;Elemente einer std::list mit delete freigeben on Tue, 10 Jul 2007 08:52:04 GMT]]></title><description><![CDATA[<p>BorisDieKlinge schrieb:</p>
<blockquote>
<p>das problem ist aber das del_elem dann eine member funktion ist</p>
</blockquote>
<p>Nur wenn du eine daraus machst. Dazu zwingt dich ja niemand.</p>
<blockquote>
<p>und dann funzt das nich mehr ...</p>
</blockquote>
<p>Doch, z.B. mit boost::bind.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1322056</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1322056</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Tue, 10 Jul 2007 08:52:04 GMT</pubDate></item><item><title><![CDATA[Reply to Bestimmten Bereich&#x2F;Elemente einer std::list mit delete freigeben on Tue, 10 Jul 2007 08:52:04 GMT]]></title><description><![CDATA[<p>Was hindert dich denn daran, das als globale Funktion zu schreiben? (ja, sowas gibt's auch in C++ :D)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1322055</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1322055</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 10 Jul 2007 08:52:04 GMT</pubDate></item><item><title><![CDATA[Reply to Bestimmten Bereich&#x2F;Elemente einer std::list mit delete freigeben on Tue, 10 Jul 2007 08:54:52 GMT]]></title><description><![CDATA[<p>globale funktionen, zerlagen meine OO design;)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1322057</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1322057</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Tue, 10 Jul 2007 08:54:52 GMT</pubDate></item><item><title><![CDATA[Reply to Bestimmten Bereich&#x2F;Elemente einer std::list mit delete freigeben on Tue, 10 Jul 2007 08:56:39 GMT]]></title><description><![CDATA[<p>BorisDieKlinge schrieb:</p>
<blockquote>
<p>globale funktionen, zerlagen meine OO design;)</p>
</blockquote>
<p>Man kann's auch übertreiben mit der OO-Fixierung <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1322059</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1322059</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 10 Jul 2007 08:56:39 GMT</pubDate></item><item><title><![CDATA[Reply to Bestimmten Bereich&#x2F;Elemente einer std::list mit delete freigeben on Tue, 10 Jul 2007 09:03:20 GMT]]></title><description><![CDATA[<p>Dann nimm ein Funktionsobjekt!</p>
<pre><code class="language-cpp">struct del_elem
{
  void operator()( ELEM*&amp; elem ) const
  { 
    delete elem;
    elem = 0; 
  }
};
</code></pre>
<p>Dann hast du wenigstens ein Objekt! ;-P</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1322065</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1322065</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Tue, 10 Jul 2007 09:03:20 GMT</pubDate></item><item><title><![CDATA[Reply to Bestimmten Bereich&#x2F;Elemente einer std::list mit delete freigeben on Tue, 10 Jul 2007 09:04:10 GMT]]></title><description><![CDATA[<p>Dann gibts noch die Moeglichkeit, einen Functor zu uebergeben, da for_each meines Wissens mit Funktionen und Functoren funktioniert (Wortwitz <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 class="language-cpp">class BorisKlasse 
{
private:
 struct ElemDeletor
 {
  void operator() (ElEM* ptr) const
  { delete ptr; }
 };

 std::list&lt;ELEM*&gt; LIST;

public:
  void del_elem(ELEM* ptr)  // wenn sie denn ubedingt Memberfunktion
  { delete ptr; }           // sein muss und du sie anderweitig brauchst

  void del_range()
  {
   // std::list&lt;ELEM*&gt;::Iterator A=...,B=...; usw.
   for_each(A, B, ElemDeletor() );
   LIST.erase(A,B);
  }
};
</code></pre>
<p>edit: war wieder einer schneller <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=":/"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1322066</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1322066</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 10 Jul 2007 09:04:10 GMT</pubDate></item><item><title><![CDATA[Reply to Bestimmten Bereich&#x2F;Elemente einer std::list mit delete freigeben on Tue, 10 Jul 2007 09:09:08 GMT]]></title><description><![CDATA[<p>Und wenn du auf Erweiterbarkeit ohne Nebeneffekte aus bist, dann kannst du in dem privaten Functor statt delete auf gleich del_elem aufrufen, dann gibts keine boesen Ueberraschungen falls du spaeter sowas wie ne Referenzzaehlung einbaust und die in del_elem mit beruecksichtigst <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> So hat dann del_range auf jeden Fall den selben Effekt wie del_elem fuer jeden einzelnen Eintrag.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1322074</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1322074</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 10 Jul 2007 09:09:08 GMT</pubDate></item><item><title><![CDATA[Reply to Bestimmten Bereich&#x2F;Elemente einer std::list mit delete freigeben on Tue, 10 Jul 2007 09:14:25 GMT]]></title><description><![CDATA[<p>hmm.. ich mach vorerst mal die funktionen global.. ungern aber egal jetzt:)</p>
<p>Nochmal was:</p>
<pre><code class="language-cpp">void operation(ELEM *ptr){

}

ELEM::func(){

 std::list&lt;ELEM*::Iterator A=...,B=...;

  count_if(A,B,operation);

}
</code></pre>
<p>wie ereich das , das ich in der opeation funktion noch den this-zeiger aus func() übergenbe kann? damit ich in operatioen das this -Objekt mit Objekt der liste vergleichen kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1322081</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1322081</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Tue, 10 Jul 2007 09:14:25 GMT</pubDate></item><item><title><![CDATA[Reply to Bestimmten Bereich&#x2F;Elemente einer std::list mit delete freigeben on Tue, 10 Jul 2007 09:19:17 GMT]]></title><description><![CDATA[<p>Du liest auchmal deine eigenen Threads durch?<br />
<a href="http://c-plusplus.net/forum/viewtopic-var-t-is-186541.html" rel="nofollow">http://c-plusplus.net/forum/viewtopic-var-t-is-186541.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1322088</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1322088</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Tue, 10 Jul 2007 09:19:17 GMT</pubDate></item><item><title><![CDATA[Reply to Bestimmten Bereich&#x2F;Elemente einer std::list mit delete freigeben on Tue, 10 Jul 2007 09:21:12 GMT]]></title><description><![CDATA[<p>echt erstaunlich</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1322093</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1322093</guid><dc:creator><![CDATA[1,3]]></dc:creator><pubDate>Tue, 10 Jul 2007 09:21:12 GMT</pubDate></item><item><title><![CDATA[Reply to Bestimmten Bereich&#x2F;Elemente einer std::list mit delete freigeben on Tue, 10 Jul 2007 13:41:52 GMT]]></title><description><![CDATA[<p>BorisDieKlinge schrieb:</p>
<blockquote>
<p>hmm.. ich mach vorerst mal die funktionen global.. ungern aber egal jetzt:)</p>
</blockquote>
<p>Aus welchem Grund denn <em>ungern</em>?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1322316</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1322316</guid><dc:creator><![CDATA[finix]]></dc:creator><pubDate>Tue, 10 Jul 2007 13:41:52 GMT</pubDate></item><item><title><![CDATA[Reply to Bestimmten Bereich&#x2F;Elemente einer std::list mit delete freigeben on Tue, 10 Jul 2007 13:50:09 GMT]]></title><description><![CDATA[<p>naja habe gelernt, man sollte keine golbalen variablen funktionen anlegen, auser es ist überhaupt nich anders machbar... da war ich 16;) 10 jahre lange routine ist nich so einfach umzubiegen;)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1322327</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1322327</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Tue, 10 Jul 2007 13:50:09 GMT</pubDate></item><item><title><![CDATA[Reply to Bestimmten Bereich&#x2F;Elemente einer std::list mit delete freigeben on Tue, 10 Jul 2007 15:04:55 GMT]]></title><description><![CDATA[<p>Jaja... Manchmal sind globale Funktionen sehr viel eleganter. Beispielsweise bei Operatorüberladung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1322414</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1322414</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Tue, 10 Jul 2007 15:04:55 GMT</pubDate></item><item><title><![CDATA[Reply to Bestimmten Bereich&#x2F;Elemente einer std::list mit delete freigeben on Tue, 10 Jul 2007 15:33:22 GMT]]></title><description><![CDATA[<p>BorisDieKlinge schrieb:</p>
<blockquote>
<p>naja habe gelernt, man sollte keine golbalen variablen funktionen anlegen, auser es ist überhaupt nich anders machbar... da war ich 16;) 10 jahre lange routine ist nich so einfach umzubiegen;)</p>
</blockquote>
<p>nein, keine globalen variablen. funktionen sind ein anderes thema</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1322446</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1322446</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Tue, 10 Jul 2007 15:33:22 GMT</pubDate></item><item><title><![CDATA[Reply to Bestimmten Bereich&#x2F;Elemente einer std::list mit delete freigeben on Tue, 10 Jul 2007 15:41:07 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p>BorisDieKlinge schrieb:</p>
<blockquote>
<p>globale funktionen, zerlagen meine OO design;)</p>
</blockquote>
<p>Man kann's auch übertreiben mit der OO-Fixierung <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
</blockquote>
<p>Sicher, kann man. Aber nicht mit Kapselung. Hierfür eine Funktion global auslagern zu müssen, ist inakzeptabel.</p>
<p>Aber es gibt doch für sowas 'std::mem_fun' und AFAIR in Boost auch noch eins drauf.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1322450</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1322450</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Tue, 10 Jul 2007 15:41:07 GMT</pubDate></item><item><title><![CDATA[Reply to Bestimmten Bereich&#x2F;Elemente einer std::list mit delete freigeben on Tue, 10 Jul 2007 16:16:57 GMT]]></title><description><![CDATA[<p>Konrad Rudolph schrieb:</p>
<blockquote>
<p>Sicher, kann man. Aber nicht mit Kapselung. Hierfür eine Funktion global auslagern zu müssen, ist inakzeptabel.</p>
</blockquote>
<p>Ich denke nicht dass es die Kapselung bricht, wenn man einen functor/eine freie funktion bastelt, die ein element löscht. wenn die funktion nicht im header sondern nur in der dazugehörigen cpp datei steht, dann kann man ja nichtmal einfach so drauf zugreifen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1322483</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1322483</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Tue, 10 Jul 2007 16:16:57 GMT</pubDate></item><item><title><![CDATA[Reply to Bestimmten Bereich&#x2F;Elemente einer std::list mit delete freigeben on Tue, 10 Jul 2007 16:26:46 GMT]]></title><description><![CDATA[<p>Ein schöner Fall für boost::lambda:</p>
<p>for_each( A, B, bind( delete_ptr(), _1 ) );</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1322492</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1322492</guid><dc:creator><![CDATA[lolz]]></dc:creator><pubDate>Tue, 10 Jul 2007 16:26:46 GMT</pubDate></item></channel></rss>