<?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[Aus Liste mit Klassen objekten löschen]]></title><description><![CDATA[<p>Hallo wie meine überschrift schon andeutet <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="😉"
    /> habe ich ein kleines problem mit dem löschen eines listen elementes(objekt einer klasse) mit remove_if</p>
<p>also wie gesagt remove_if soll aus einer liste ein objekt entfernen wenn das listen element den selben namen(string) trägt wie das der funktion übergebenen klassen element... und iwie bekomme ich kein prädikat hin welches funktioniert !?</p>
<pre><code>bool name(SingleWS const &amp;ws1, SingleWS &amp;ws2) {
    return ws1.GetName() == ws2.GetName();
}

void WS::Remove(SingleWS const &amp; ws) {
    remove_if(mWeSt.begin(), mWeSt.end(), bind2nd(name, ws)) 
}
</code></pre>
<p>wäre nett wenn jemand rat weis</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/316813/aus-liste-mit-klassen-objekten-löschen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 29 Jul 2026 22:29:27 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/316813.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 17 May 2013 11:22:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Aus Liste mit Klassen objekten löschen on Fri, 17 May 2013 11:22:38 GMT]]></title><description><![CDATA[<p>Hallo wie meine überschrift schon andeutet <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="😉"
    /> habe ich ein kleines problem mit dem löschen eines listen elementes(objekt einer klasse) mit remove_if</p>
<p>also wie gesagt remove_if soll aus einer liste ein objekt entfernen wenn das listen element den selben namen(string) trägt wie das der funktion übergebenen klassen element... und iwie bekomme ich kein prädikat hin welches funktioniert !?</p>
<pre><code>bool name(SingleWS const &amp;ws1, SingleWS &amp;ws2) {
    return ws1.GetName() == ws2.GetName();
}

void WS::Remove(SingleWS const &amp; ws) {
    remove_if(mWeSt.begin(), mWeSt.end(), bind2nd(name, ws)) 
}
</code></pre>
<p>wäre nett wenn jemand rat weis</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2323983</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2323983</guid><dc:creator><![CDATA[Gerri84]]></dc:creator><pubDate>Fri, 17 May 2013 11:22:38 GMT</pubDate></item><item><title><![CDATA[Reply to Aus Liste mit Klassen objekten löschen on Fri, 17 May 2013 11:54:51 GMT]]></title><description><![CDATA[<p>Entweder setze den Operator == und verwende std::remove oder nutze ein functional object:</p>
<pre><code>struct Compare
{
    explicit Compare(SingleWS const &amp;ws1) : ws1(ws1) { }

    bool operator() (SingleWS const &amp;ws2) const
    {
        return (ws1.GetName() == ws2.GetName());
    }

private:
    SingleWS const &amp;ws1;
};

void WS::Remove(SingleWS const &amp; ws)
{ 
    std::remove_if(mWeSt.begin(), mWeSt.end(), Compare(ws)) ;
}
</code></pre>
<p>EDIT: Mit C++11 sind natürlich lambdas die beste Methode.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324003</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324003</guid><dc:creator><![CDATA[Marthog]]></dc:creator><pubDate>Fri, 17 May 2013 11:54:51 GMT</pubDate></item><item><title><![CDATA[Reply to Aus Liste mit Klassen objekten löschen on Fri, 17 May 2013 11:55:52 GMT]]></title><description><![CDATA[<p>Warum verweist die zweite Referenz nicht auf ein <code>const</code> -Objekt?</p>
<p><code>std::bind2nd()</code> ist übrigens deprecated. Wenn du C++11 hast, verwende stattdessen <code>std::bind()</code> . Auch möglich ist ein Lambda-Ausdruck als Prädikat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324004</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324004</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 17 May 2013 11:55:52 GMT</pubDate></item><item><title><![CDATA[Reply to Aus Liste mit Klassen objekten löschen on Fri, 17 May 2013 12:06:39 GMT]]></title><description><![CDATA[<p>nur ein tipp fehler 2tes is natürlich auch const verwende visual studio 2010<br />
danke werd ich gleich mal testen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324009</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324009</guid><dc:creator><![CDATA[Gerri84]]></dc:creator><pubDate>Fri, 17 May 2013 12:06:39 GMT</pubDate></item><item><title><![CDATA[Reply to Aus Liste mit Klassen objekten löschen on Fri, 17 May 2013 13:15:04 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/23821">@Marthog</a> thx war genau das was ich gesucht hatte... hab noch nicht so den plan von functoren <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>
<p>also das ich das richtig verstehe wofür brauch ich das explicit ? und sonst is es einfach ein standard c-tor und die operator funktion überlädt den () operator um operationen auf die klasse auszuführen ... aber wozu brauch ich noch die ws1 als member ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324028</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324028</guid><dc:creator><![CDATA[Gerri84]]></dc:creator><pubDate>Fri, 17 May 2013 13:15:04 GMT</pubDate></item><item><title><![CDATA[Reply to Aus Liste mit Klassen objekten löschen on Fri, 17 May 2013 13:26:22 GMT]]></title><description><![CDATA[<p>Gerri84 schrieb:</p>
<blockquote>
<p>aber wozu brauch ich noch die ws1 als member ?</p>
</blockquote>
<p>Schau die doch den Code an. Mit was willst du denn vergleichen wenn du ws1 nicht hast?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324031</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324031</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Fri, 17 May 2013 13:26:22 GMT</pubDate></item><item><title><![CDATA[Reply to Aus Liste mit Klassen objekten löschen on Fri, 17 May 2013 13:49:24 GMT]]></title><description><![CDATA[<p>naja ich dachte bei der operator funktion könnt ich einfach zwei paramter angeben und die find_if liefert an den ersten paramter jeweils ein element der liste und das zweite is gebunden an ws</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324042</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324042</guid><dc:creator><![CDATA[Gerri84]]></dc:creator><pubDate>Fri, 17 May 2013 13:49:24 GMT</pubDate></item><item><title><![CDATA[Reply to Aus Liste mit Klassen objekten löschen on Fri, 17 May 2013 13:58:21 GMT]]></title><description><![CDATA[<p>Gerri84 schrieb:</p>
<blockquote>
<p>also das ich das richtig verstehe wofür brauch ich das explicit ?</p>
</blockquote>
<p>Ein expliziter Konstruktor lässt sich auch nur explizit aufrufen. Er lässt sich also nicht implizit aufrufen.</p>
<p>Beispiel:</p>
<pre><code>struct A
{
     A(int){}
};

struct B
{
     explicit B(int){}
};

void foo1(A);
void foo2(B);

// ...

foo1(0); // Alles gut - der sog. Konvertierungskonstruktor von A wird aufgerufen.
foo2(0); // Fehler: Du musst den Konstruktor explizit aufrufen.
foo2( B(0) ); // Gut!
</code></pre>
<p>Hier ein Beispiel aus dem Standard:</p>
<pre><code>struct Z 
{
    explicit Z();
    explicit Z(int);
};
Z a; // OK: default-initialization performed
Z a1 = 1; // error: no implicit conversion
Z a3 = Z(1); // OK: direct initialization syntax used
Z a2(1); // OK: direct initialization syntax used
Z* p = new Z(1); // OK: direct initialization syntax used
Z a4 = (Z)1; // OK: explicit cast used
Z a5 = static_cast&lt;Z&gt;(1); // OK: explicit cast used
</code></pre>
<p>Explizite Konstruktoren machen da Sinn, wo ein Konstruktor mit einem Parameter aufgerufen werden kann, und es keinen Sinn macht, diesen implizit in den entsprechenden Klassentypen konvertierbar zu machen.</p>
<p>Wie würde das aussehen:</p>
<pre><code>foo( vector&lt;int&gt; );

foo(2); // Wenn std::vectors entsprechender Konstruktor (der, der die Größe nimmt), nicht explizit wäre, würde das gehen
        // .. und das sieht echt voll Blöd aus. Macht keinen Sinn, oder!?
</code></pre>
<p>Und das kann dann theoretisch auch zu Überladungszwecken genutzt werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324045</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324045</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Fri, 17 May 2013 13:58:21 GMT</pubDate></item><item><title><![CDATA[Reply to Aus Liste mit Klassen objekten löschen on Fri, 17 May 2013 14:07:18 GMT]]></title><description><![CDATA[<p>Gerri84 schrieb:</p>
<blockquote>
<p>naja ich dachte bei der operator funktion könnt ich einfach zwei paramter angeben und die find_if liefert an den ersten paramter jeweils ein element der liste und das zweite is gebunden an ws</p>
</blockquote>
<p>Du übergibst mit dem Funktor aber ein Objekt und keine Funktion. Da gibt es nichts zum Binden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324050</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324050</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Fri, 17 May 2013 14:07:18 GMT</pubDate></item><item><title><![CDATA[Reply to Aus Liste mit Klassen objekten löschen on Fri, 17 May 2013 14:19:05 GMT]]></title><description><![CDATA[<p>hmm ja stimmt danke jetzt lichtet sich der nebel <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2324051</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324051</guid><dc:creator><![CDATA[Gerri84]]></dc:creator><pubDate>Fri, 17 May 2013 14:19:05 GMT</pubDate></item></channel></rss>