<?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[Bags in C++]]></title><description><![CDATA[<p>Hallo an alle,</p>
<p>mir stellt sich die Frage ob es in C++ sog. &quot;Bags&quot; gibt. Ein Beutel ist eine unstrukturierte Menge von Objekten, welche auch Duplikate enthalten kann.</p>
<p>In Smalltalk gibt es sowas.<br />
<a href="http://books.google.de/books?id=DUEPhWf8sh0C&amp;pg=PA213&amp;lpg=PA213&amp;dq=smalltalk+bag&amp;source=bl&amp;ots=JyqbhileMC&amp;sig=4ZeBDLFLzob0acvO83RssuwUV2k&amp;hl=de&amp;ei=U6oVS6CVKpmi_AaHruj1Bg&amp;sa=X&amp;oi=book_result&amp;ct=result&amp;resnum=6&amp;ved=0CCUQ6AEwBQ#v=onepage&amp;q=smalltalk%20bag&amp;f=false" rel="nofollow">Bags und Sets</a></p>
<p>Wenn es denn sowas in C++ gibt, ist es möglich ein Bag anzulegen ohne sich auf den Datentyp festzulegen?</p>
<p>In Smalltalk wird (s. Link oben) ein Bag definiert und dieser kann beliebige Objekttypen beinhalten. Also int, char etc. Betonung liegt auf <strong>Objekt</strong>.</p>
<p>Das einzige was ich hierzu gefunden habe ist <a href="http://www.eecs.utoledo.edu/~ledgard/oop/page2f.html" rel="nofollow">dies</a>.</p>
<p>Es kommt dem Bag zwar nahe ist aber:<br />
1. Auf ein Datentyp festgelegt (im Beispiel ist das int)<br />
2. Hat eine Feste größe (100)<br />
3. Ist durch das verwenden von Arrays sortiert.</p>
<p>Hoffe ihr könnt mir helfen.<br />
Schöne Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/255536/bags-in-c</link><generator>RSS for Node</generator><lastBuildDate>Wed, 09 Sep 2026 03:10:21 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/255536.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 01 Dec 2009 23:58:41 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Bags in C++ on Tue, 01 Dec 2009 23:58:41 GMT]]></title><description><![CDATA[<p>Hallo an alle,</p>
<p>mir stellt sich die Frage ob es in C++ sog. &quot;Bags&quot; gibt. Ein Beutel ist eine unstrukturierte Menge von Objekten, welche auch Duplikate enthalten kann.</p>
<p>In Smalltalk gibt es sowas.<br />
<a href="http://books.google.de/books?id=DUEPhWf8sh0C&amp;pg=PA213&amp;lpg=PA213&amp;dq=smalltalk+bag&amp;source=bl&amp;ots=JyqbhileMC&amp;sig=4ZeBDLFLzob0acvO83RssuwUV2k&amp;hl=de&amp;ei=U6oVS6CVKpmi_AaHruj1Bg&amp;sa=X&amp;oi=book_result&amp;ct=result&amp;resnum=6&amp;ved=0CCUQ6AEwBQ#v=onepage&amp;q=smalltalk%20bag&amp;f=false" rel="nofollow">Bags und Sets</a></p>
<p>Wenn es denn sowas in C++ gibt, ist es möglich ein Bag anzulegen ohne sich auf den Datentyp festzulegen?</p>
<p>In Smalltalk wird (s. Link oben) ein Bag definiert und dieser kann beliebige Objekttypen beinhalten. Also int, char etc. Betonung liegt auf <strong>Objekt</strong>.</p>
<p>Das einzige was ich hierzu gefunden habe ist <a href="http://www.eecs.utoledo.edu/~ledgard/oop/page2f.html" rel="nofollow">dies</a>.</p>
<p>Es kommt dem Bag zwar nahe ist aber:<br />
1. Auf ein Datentyp festgelegt (im Beispiel ist das int)<br />
2. Hat eine Feste größe (100)<br />
3. Ist durch das verwenden von Arrays sortiert.</p>
<p>Hoffe ihr könnt mir helfen.<br />
Schöne Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1816256</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1816256</guid><dc:creator><![CDATA[Croatiancow]]></dc:creator><pubDate>Tue, 01 Dec 2009 23:58:41 GMT</pubDate></item><item><title><![CDATA[Reply to Bags in C++ on Wed, 02 Dec 2009 00:44:44 GMT]]></title><description><![CDATA[<p><code>std::vector&lt;boost::any&gt;</code></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1816268</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1816268</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 02 Dec 2009 00:44:44 GMT</pubDate></item><item><title><![CDATA[Reply to Bags in C++ on Wed, 02 Dec 2009 08:46:18 GMT]]></title><description><![CDATA[<p>Vielen Dank.</p>
<p>Den Rest macht google.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1816318</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1816318</guid><dc:creator><![CDATA[Croatiancow]]></dc:creator><pubDate>Wed, 02 Dec 2009 08:46:18 GMT</pubDate></item><item><title><![CDATA[Reply to Bags in C++ on Wed, 02 Dec 2009 14:12:56 GMT]]></title><description><![CDATA[<pre><code>std::multiset
</code></pre>
<p>wäre hier erwähnenswert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1816477</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1816477</guid><dc:creator><![CDATA[tntnet]]></dc:creator><pubDate>Wed, 02 Dec 2009 14:12:56 GMT</pubDate></item><item><title><![CDATA[Reply to Bags in C++ on Wed, 02 Dec 2009 14:38:25 GMT]]></title><description><![CDATA[<p>Edit: Hier stand dummes Zeug</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1816495</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1816495</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Wed, 02 Dec 2009 14:38:25 GMT</pubDate></item><item><title><![CDATA[Reply to Bags in C++ on Wed, 02 Dec 2009 22:18:14 GMT]]></title><description><![CDATA[<p>multiset geht nur mit einem typ.</p>
<p>und std::multiset<a href="boost::any" rel="nofollow">boost::any</a> geht nicht, da std::multiset ne strict-weak-ordering braucht, und die bekommt man mit boost::any wohl eher nicht hin.</p>
<p>std::list oder std::deque wäre noch eine option.</p>
<p>p.S.: <a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/9257">@Croatiancow</a>: ich glaube übrigens nicht dass du mit der &quot;Lösung&quot; glücklich werden wirst. Anders gesagt: ich würde vector&lt;any&gt; nicht &quot;empfehlen&quot;. Es ist nur das einzige was ich kenne, was dem nahe kommt nach was du gefragt hast <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1816789</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1816789</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 02 Dec 2009 22:18:14 GMT</pubDate></item><item><title><![CDATA[Reply to Bags in C++ on Thu, 03 Dec 2009 10:02:33 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>und std::multiset<a href="boost::any" rel="nofollow">boost::any</a> geht nicht, da std::multiset ne strict-weak-ordering braucht, und die bekommt man mit boost::any wohl eher nicht hin.</p>
</blockquote>
<p>Nach dem Wohlordnungssatz kann jede Menge geordnet werden. Da any nichts anderes als ein void* verpackt ist, kann die Speicheradresse als Ordnungsgrundlage dienen. Dann wuerde auch ein std::set ausreichen.</p>
<blockquote>
<p>Wenn es denn sowas in C++ gibt, ist es möglich ein Bag anzulegen ohne sich auf den Datentyp festzulegen?</p>
</blockquote>
<p>Es ist moeglich, aber du musst es dir selbst bauen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1816955</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1816955</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Thu, 03 Dec 2009 10:02:33 GMT</pubDate></item><item><title><![CDATA[Reply to Bags in C++ on Thu, 03 Dec 2009 10:22:55 GMT]]></title><description><![CDATA[<p>knivil schrieb:</p>
<blockquote>
<p>hustbaer schrieb:</p>
<blockquote>
<p>und std::multiset<a href="boost::any" rel="nofollow">boost::any</a> geht nicht, da std::multiset ne strict-weak-ordering braucht, und die bekommt man mit boost::any wohl eher nicht hin.</p>
</blockquote>
<p>Nach dem Wohlordnungssatz kann jede Menge geordnet werden.</p>
</blockquote>
<p>Es geht sowieso nur um endliche Mengen.</p>
<p>knivil schrieb:</p>
<blockquote>
<p>Da any nichts anderes als ein void* verpackt ist, kann die Speicheradresse als Ordnungsgrundlage dienen. Dann wuerde auch ein std::set ausreichen.</p>
</blockquote>
<p>Kaum, denn dann gibt es keine äquivalenten Kopien - eine Grundvoraussetzung für Containerelemente.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1816968</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1816968</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Thu, 03 Dec 2009 10:22:55 GMT</pubDate></item><item><title><![CDATA[Reply to Bags in C++ on Thu, 03 Dec 2009 11:13:20 GMT]]></title><description><![CDATA[<blockquote>
<p>Kaum, denn dann gibt es keine äquivalenten Kopien - eine Grundvoraussetzung für Containerelemente.</p>
</blockquote>
<p>Grundvoraussetzung? Kannst du das mal bitte etwas ausfueheren. Ich habe es so schon einmal verwendet, aber ich brauchte keine Kopien.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1817000</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1817000</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Thu, 03 Dec 2009 11:13:20 GMT</pubDate></item><item><title><![CDATA[Reply to Bags in C++ on Thu, 03 Dec 2009 11:58:56 GMT]]></title><description><![CDATA[<p>Habe es mal mit der &quot;boost::any&quot; Lösung versucht.</p>
<p>Ich habe nun das Problem das ich zwar per pushback was reinwerfe, es aber mit einer einfachen for schleife nicht auslesen kann, da ich eine Eigene Klasse verwende. In allen Tutorials wird mit einfachen int's gearbeitet.</p>
<p>Hier mein Beispiel:</p>
<pre><code class="language-cpp">int main()
{

 Money euro(5,'E');

 vector&lt;boost::any&gt; bag;
 bag.clear();
 bag.push_back(euro);

}
</code></pre>
<p>Wenn ich jetzt das Objekt euro ausgeben möchte müsste ich auf meine</p>
<pre><code class="language-cpp">getValue(void)
</code></pre>
<p>vom Objekt zugreifen. Da komme ich aber irgendwie nicht hin.<br />
Ein</p>
<pre><code class="language-cpp">bag[0].getValue();
</code></pre>
<p>klappt nicht.</p>
<p>Hat jemand ne Idee?</p>
<p>Hier der Header:</p>
<pre><code class="language-cpp">class Money
{
    private:
    char currency;
    int value;

    public:
    Money();
    Money(int val,char curr);
    void set(int val, char curr);
    int getValue(void);

    };
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1817033</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1817033</guid><dc:creator><![CDATA[Croatiancow]]></dc:creator><pubDate>Thu, 03 Dec 2009 11:58:56 GMT</pubDate></item><item><title><![CDATA[Reply to Bags in C++ on Thu, 03 Dec 2009 12:50:09 GMT]]></title><description><![CDATA[<p>knivil schrieb:</p>
<blockquote>
<p>hustbaer schrieb:</p>
<blockquote>
<p>und std::multiset<a href="boost::any" rel="nofollow">boost::any</a> geht nicht, da std::multiset ne strict-weak-ordering braucht, und die bekommt man mit boost::any wohl eher nicht hin.</p>
</blockquote>
<p>Nach dem Wohlordnungssatz kann jede Menge geordnet werden. Da any nichts anderes als ein void* verpackt ist, kann die Speicheradresse als Ordnungsgrundlage dienen. Dann wuerde auch ein std::set ausreichen.</p>
</blockquote>
<p>Mit Standard C++ kannst du void* nicht ordnen, da Zeigervergleich undefiniert ist, wenn die Zeiger nicht aus dem selben Array kommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1817088</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1817088</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Thu, 03 Dec 2009 12:50:09 GMT</pubDate></item><item><title><![CDATA[Reply to Bags in C++ on Thu, 03 Dec 2009 13:02:13 GMT]]></title><description><![CDATA[<p>Croatiancow schrieb:</p>
<blockquote>
<p>Wenn ich jetzt das Objekt euro ausgeben möchte müsste ich auf meine</p>
<pre><code class="language-cpp">getValue(void)
</code></pre>
<p>vom Objekt zugreifen. Da komme ich aber irgendwie nicht hin.<br />
Ein</p>
<pre><code class="language-cpp">bag[0].getValue();
</code></pre>
<p>klappt nicht.</p>
<p>Hat jemand ne Idee?</p>
</blockquote>
<p>Du musst das boost::any wieder in ein Money-Objekt casten, das geht IIRC so:</p>
<pre><code class="language-cpp">any_cast&lt;Money&gt;(bag[0]).getValue();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1817095</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1817095</guid><dc:creator><![CDATA[Blue-Tiger]]></dc:creator><pubDate>Thu, 03 Dec 2009 13:02:13 GMT</pubDate></item><item><title><![CDATA[Reply to Bags in C++ on Thu, 03 Dec 2009 13:04:24 GMT]]></title><description><![CDATA[<p>Ach ja: um vorher zu ueberpruefen ob das Objekt ueberhaupt ein Money-Objekt ist:</p>
<pre><code class="language-cpp">if (bag[0].type() == typeid(Money))
 // bag[0] ist vom typ Money
</code></pre>
<p>wenn bag[0] naemlich kein Money-Objekt waer, wuerde sonst eine bad_any_cast - exception geworfen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1817097</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1817097</guid><dc:creator><![CDATA[Blue-Tiger]]></dc:creator><pubDate>Thu, 03 Dec 2009 13:04:24 GMT</pubDate></item><item><title><![CDATA[Reply to Bags in C++ on Thu, 03 Dec 2009 13:55:01 GMT]]></title><description><![CDATA[<p>Vielen Dank!</p>
<p>Jetzt klappts. Hier kurz die Lösung für die Nachwelt:</p>
<pre><code class="language-cpp">int main()
{

 Money euro(5,'E');
 Money tmp1;
 vector&lt;boost::any&gt; bag;
 bag.clear();
 bag.push_back(euro);
 cout&lt;&lt;boost::any_cast&lt;Money&gt;(bag[0]).getValue();
}
</code></pre>
<p>Mann kann jetzt auch die Ausgabe in eine Schleife bauen, um alles auszulesen (wie beim Array).</p>
<p>Vielen Dank für deine / eure Hilfe.</p>
<p>Gruß und frohe Weihnachten :xmas1:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1817130</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1817130</guid><dc:creator><![CDATA[Croatiancow]]></dc:creator><pubDate>Thu, 03 Dec 2009 13:55:01 GMT</pubDate></item><item><title><![CDATA[Reply to Bags in C++ on Thu, 03 Dec 2009 19:15:05 GMT]]></title><description><![CDATA[<p>Auch wenn das Problem gelöst ist würde mich folgendes zu dem Thema interessieren:</p>
<p>Nehmen wir an ich hätte das Bedürfnis zu Prüfen ob in einem Vector ein bestimmtes Objekt drin ist.</p>
<p>Also sowas wie eine includes(Objekt) Methode.<br />
So wie ich das sehe gibt es keine Methode in Vector welche das macht. Also würde ich eine eigene schreiben.</p>
<p>Tja und hier komm ich nicht weiter. Vector ist ja aus der STL und da soll man nicht direkt davon ableiten.</p>
<p>Wie krieg ich das aber hin eine eigene Klasse zu schreiben welche mir eingentlich nur ein Vector + meine eigenen Methoden zur verfügung stellt?</p>
<p>Verzeiht mir meine Unwissenheit.</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1817311</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1817311</guid><dc:creator><![CDATA[Croatiancow]]></dc:creator><pubDate>Thu, 03 Dec 2009 19:15:05 GMT</pubDate></item><item><title><![CDATA[Reply to Bags in C++ on Thu, 03 Dec 2009 19:28:00 GMT]]></title><description><![CDATA[<p>Croatiancow schrieb:</p>
<blockquote>
<p>So wie ich das sehe gibt es keine Methode in Vector welche das macht. Also würde ich eine eigene schreiben.</p>
</blockquote>
<p>Nein!</p>
<p>Croatiancow schrieb:</p>
<blockquote>
<p>Tja und hier komm ich nicht weiter. Vector ist ja aus der STL und da soll man nicht direkt davon ableiten.</p>
</blockquote>
<p>Ja, weil die Vererbung im Normalfall auch nicht nötig ist.</p>
<p>Croatiancow schrieb:</p>
<blockquote>
<p>Wie krieg ich das aber hin eine eigene Klasse zu schreiben welche mir eingentlich nur ein Vector + meine eigenen Methoden zur verfügung stellt?</p>
</blockquote>
<p>Gar nicht.</p>
<p>Ich habe das Gefühl, du denkst zu fest an andere Programmiersprachen, wo deine Vorgehensweise möglicherweise üblich ist. In C++ gibt es allerdings freie Funktionen, welche unabhängig von Klassen arbeiten können. Folglich brauchst du die Funktionen nicht als Member zu implementieren, sondern -- wenn überhaupt -- global.</p>
<p>Eine Möglichkeit zum Suchen gibt es in der STL jedoch bereits: Siehe dazu den Algorithmus <code>std::find()</code> auf <a href="http://www.cplusplus.com" rel="nofollow">www.cplusplus.com</a>.</p>
<p>Croatiancow schrieb:</p>
<blockquote>
<p>Verzeiht mir meine Unwissenheit.</p>
</blockquote>
<p>Du brauchst dich doch nicht rechtzufertigen, wir helfen gerne. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1817318</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1817318</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 03 Dec 2009 19:28:00 GMT</pubDate></item><item><title><![CDATA[Reply to Bags in C++ on Thu, 03 Dec 2009 19:38:27 GMT]]></title><description><![CDATA[<p>Nein ich habe in meinem Leben weder Java noch C# oder sonstwas gemacht. Nur C++</p>
<p>Es ging mir darum ein Bag zu erstellen und den dann mit Methoden zu erweitern. Einfach mal was global zu definieren ist leider nicht OO und somit für mich uninteressant. Ich darf nur mit Objekten arbeiten.</p>
<p>Also ist ein</p>
<pre><code class="language-cpp">Bag.includes(Objekt)
</code></pre>
<p>so nicht möglich. Klar das ich mit</p>
<pre><code class="language-cpp">p = find(vectorObject.begin(), vectorObject.end(), Objekt);
</code></pre>
<p>suchen kann.</p>
<p>Schön wäre ein</p>
<pre><code class="language-cpp">Bag.find(vectorObject.begin(), vectorObject.end(), Objekt);
</code></pre>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1817328</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1817328</guid><dc:creator><![CDATA[Croatiancow]]></dc:creator><pubDate>Thu, 03 Dec 2009 19:38:27 GMT</pubDate></item><item><title><![CDATA[Reply to Bags in C++ on Thu, 03 Dec 2009 20:15:05 GMT]]></title><description><![CDATA[<p>Croatiancow schrieb:</p>
<blockquote>
<p>Einfach mal was global zu definieren ist leider nicht OO</p>
</blockquote>
<p>Du meinst, es entspricht nicht deiner Definition von Objektorientierung. <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>Croatiancow schrieb:</p>
<blockquote>
<p>Ich darf nur mit Objekten arbeiten.</p>
</blockquote>
<p>Okay. Dann schreibe dir eine Bag-Klasse, die aber <strong>nicht</strong> von <code>std::vector</code> erbt, sondern ihn als Membervariable enthält (Aggregation). Somit brauchst du auch nicht alle Methoden anzubieten, sondern kannst das Interface auf die beschränken, die du brauchst. Entsprechend bietest du eine <code>find()</code> -, <code>contains()</code> oder <code>includes()</code> -Memberfunktion an, welche die gewünschte Funktionalität bietet. Intern verwendet sie <code>std::find()</code> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1817343</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1817343</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 03 Dec 2009 20:15:05 GMT</pubDate></item><item><title><![CDATA[Reply to Bags in C++ on Thu, 03 Dec 2009 20:30:12 GMT]]></title><description><![CDATA[<p>Genau das mache ich jetzt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":-)"
      alt="🙂"
    /></p>
<p>Ist mir beim Brainstorming mit nem Kumpel gekommen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":-)"
      alt="🙂"
    /></p>
<p>Ich Danke euch vielmals! Ihr seid echt Klasse!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1817355</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1817355</guid><dc:creator><![CDATA[Croatiancow]]></dc:creator><pubDate>Thu, 03 Dec 2009 20:30:12 GMT</pubDate></item><item><title><![CDATA[Reply to Bags in C++ on Thu, 03 Dec 2009 21:03:34 GMT]]></title><description><![CDATA[<p>das heißt bug</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1817394</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1817394</guid><dc:creator><![CDATA[ccc]]></dc:creator><pubDate>Thu, 03 Dec 2009 21:03:34 GMT</pubDate></item><item><title><![CDATA[Reply to Bags in C++ on Thu, 03 Dec 2009 21:04:17 GMT]]></title><description><![CDATA[<p>ccc schrieb:</p>
<blockquote>
<p>das heißt bug</p>
</blockquote>
<p>Das les ich eben auch immer, wenn ich die Thread Liste überfliege.. :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1817395</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1817395</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Thu, 03 Dec 2009 21:04:17 GMT</pubDate></item><item><title><![CDATA[Reply to Bags in C++ on Thu, 03 Dec 2009 21:20:05 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Mit Standard C++ kannst du void* nicht ordnen, da Zeigervergleich undefiniert ist, wenn die Zeiger nicht aus dem selben Array kommen.</p>
</blockquote>
<p>Nach der Logik könnten Zeiger niemals als Keys eines assoziativen Containers auftreten. Diese Einschränkung gilt erfahrungsgemäß nicht.<br />
Denn std::less ist sehr wohl definiert für beliebige gültige Zeigerpaare (20.3.3/8).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1817408</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1817408</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Thu, 03 Dec 2009 21:20:05 GMT</pubDate></item><item><title><![CDATA[Reply to Bags in C++ on Fri, 04 Dec 2009 01:01:26 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>hustbaer schrieb:</p>
<blockquote>
<p>Mit Standard C++ kannst du void* nicht ordnen, da Zeigervergleich undefiniert ist, wenn die Zeiger nicht aus dem selben Array kommen.</p>
</blockquote>
<p>Nach der Logik könnten Zeiger niemals als Keys eines assoziativen Containers auftreten. Diese Einschränkung gilt erfahrungsgemäß nicht.<br />
Denn std::less ist sehr wohl definiert für beliebige gültige Zeigerpaare (20.3.3/8).</p>
</blockquote>
<p>Cool, wusste ich nicht.</p>
<p>Bringt aber eigentlich nix in dem Fall. boost::any ist ein &quot;value type&quot;, d.h. die Adresse des &quot;inneren T&quot; würde sich mit Zuweisung/Kopie ändern. D.h. weiter, ein set.find(v) würde nie was finden. Kann man also gleich std::list nehmen.</p>
<p>p.S.: oder vielleicht ein <code>std::set&lt;boost::shared_ptr&lt;boost::any&gt; &gt;</code> <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/1817523</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1817523</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Fri, 04 Dec 2009 01:01:26 GMT</pubDate></item><item><title><![CDATA[Reply to Bags in C++ on Fri, 04 Dec 2009 13:24:44 GMT]]></title><description><![CDATA[<p>Das mit es mit find() nicht funktioniert musste ich leider feststellen.</p>
<p>Mein Workaround hierzu ist eine häßliche schleife:</p>
<pre><code class="language-cpp">bool Beutel::includes(SFR sfrgeld){

     for(int x=0;x&lt;geldbeutel.size();x++)
    {

    if ((geldbeutel[x].type() == typeid(SFR))&amp;&amp;((sfrgeld.getValue() == (boost::any_cast&lt;SFR&gt;(geldbeutel[x]).getValue()))))
        {
        return true;
        }

     };
return false;
 };
</code></pre>
<p>Gibts da echt keine andere Möglichkeit?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1817839</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1817839</guid><dc:creator><![CDATA[Croatiancow]]></dc:creator><pubDate>Fri, 04 Dec 2009 13:24:44 GMT</pubDate></item><item><title><![CDATA[Reply to Bags in C++ on Fri, 04 Dec 2009 16:51:41 GMT]]></title><description><![CDATA[<p>Dem STL-Algorithmus <code>std::find_if()</code> kannst du eine Vergleichsfunktion übergeben. Aber der Code wird dadurch gesamthaft nicht kürzer, nur deine <code>includes()</code> -Funktion sieht schöner aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1817951</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1817951</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 04 Dec 2009 16:51:41 GMT</pubDate></item></channel></rss>