<?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[Wildcards in std::set Suche]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine Struktur, die erlaubte Statements enthält.<br />
Es handelt sich um ein std::set, da doppelte Einträge nicht vorkommen sollen und diese Liste sehr groß werden kann, weswegen ein Container mit binary tree search Voraussetzung ist.</p>
<p>Dieses set kann zum Beispiel folgendes enthalten:</p>
<blockquote>
<p>Hallo<br />
Huhu<br />
Bla<br />
Em*<br />
Jaja</p>
</blockquote>
<p>wobei alle Statements erlaubt sind, die mit Em anfangen.<br />
Nur wie soll ich nach sowas suchen?</p>
<p>Wenn ein Statement wie &quot;Hallo&quot; reinkommt, suche ich einfach mittels std::set::find.</p>
<p>Kommt nun aber ein Statement wie &quot;Employee&quot; rein, werde ich mit der Standardsuche natürlich kein Ergebnis erzielen.</p>
<p>Hat jemand eine Idee, wie ich sowas anstellen könnte?<br />
Eine schnelle Lösung wäre ja, beim Einlesen des Sets alle Einträge mit '*' in einem anderen Set zu speichern (oder std::vector) und wenn im ersten Set nichts gefunden wird, mit einer normalen For-Schleife das zweite Set zu durchsuchen:</p>
<pre><code class="language-cpp">/*
Set2=
Em (das Sternchen würde ich abschneiden)
*/

for (int i = 0; i &lt; set2.size(); ++i)
{
    // wenn Statement mit set2[i] anfängt, dann mache irgendwas
    break;
}
</code></pre>
<p>Das sollte erst mal funktionieren, kann aber wiederum langsam sein, wenn set2 einige Millionen Einträge hat (was passieren kann).</p>
<p>Außerdem würde das nur funktionieren, wenn ich ein einziges Wildcard-Zeichen zulasse und nach dem Wildcard-Zeichen Schluss ist, Konstrukte wie</p>
<blockquote>
<p>Em*ee<br />
Em*a*<br />
usw</p>
</blockquote>
<p>würden nicht funktionieren.</p>
<p>Hat jemand eine bessere Idee, wie ich in diesem Fall mit Wildcards umgehen könnte?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/272521/wildcards-in-std-set-suche</link><generator>RSS for Node</generator><lastBuildDate>Fri, 28 Aug 2026 17:31:28 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/272521.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 19 Aug 2010 06:00:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wildcards in std::set Suche on Thu, 19 Aug 2010 06:00:00 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe eine Struktur, die erlaubte Statements enthält.<br />
Es handelt sich um ein std::set, da doppelte Einträge nicht vorkommen sollen und diese Liste sehr groß werden kann, weswegen ein Container mit binary tree search Voraussetzung ist.</p>
<p>Dieses set kann zum Beispiel folgendes enthalten:</p>
<blockquote>
<p>Hallo<br />
Huhu<br />
Bla<br />
Em*<br />
Jaja</p>
</blockquote>
<p>wobei alle Statements erlaubt sind, die mit Em anfangen.<br />
Nur wie soll ich nach sowas suchen?</p>
<p>Wenn ein Statement wie &quot;Hallo&quot; reinkommt, suche ich einfach mittels std::set::find.</p>
<p>Kommt nun aber ein Statement wie &quot;Employee&quot; rein, werde ich mit der Standardsuche natürlich kein Ergebnis erzielen.</p>
<p>Hat jemand eine Idee, wie ich sowas anstellen könnte?<br />
Eine schnelle Lösung wäre ja, beim Einlesen des Sets alle Einträge mit '*' in einem anderen Set zu speichern (oder std::vector) und wenn im ersten Set nichts gefunden wird, mit einer normalen For-Schleife das zweite Set zu durchsuchen:</p>
<pre><code class="language-cpp">/*
Set2=
Em (das Sternchen würde ich abschneiden)
*/

for (int i = 0; i &lt; set2.size(); ++i)
{
    // wenn Statement mit set2[i] anfängt, dann mache irgendwas
    break;
}
</code></pre>
<p>Das sollte erst mal funktionieren, kann aber wiederum langsam sein, wenn set2 einige Millionen Einträge hat (was passieren kann).</p>
<p>Außerdem würde das nur funktionieren, wenn ich ein einziges Wildcard-Zeichen zulasse und nach dem Wildcard-Zeichen Schluss ist, Konstrukte wie</p>
<blockquote>
<p>Em*ee<br />
Em*a*<br />
usw</p>
</blockquote>
<p>würden nicht funktionieren.</p>
<p>Hat jemand eine bessere Idee, wie ich in diesem Fall mit Wildcards umgehen könnte?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1941825</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1941825</guid><dc:creator><![CDATA[TheGrudge]]></dc:creator><pubDate>Thu, 19 Aug 2010 06:00:00 GMT</pubDate></item><item><title><![CDATA[Reply to Wildcards in std::set Suche on Thu, 19 Aug 2010 06:12:12 GMT]]></title><description><![CDATA[<p>nutz was das Regular Expressions kann und konvertiere die Wildcards ... oder nutz was das Wildcards kann.</p>
<p>zB Qt QRegExp ... das kann beides. Gibts aber vielleicht auch mit weniger Abhängigkeiten in einer kleineren lib ... schau doch mal bei boost + regexp (google)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1941827</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1941827</guid><dc:creator><![CDATA[padreigh]]></dc:creator><pubDate>Thu, 19 Aug 2010 06:12:12 GMT</pubDate></item><item><title><![CDATA[Reply to Wildcards in std::set Suche on Thu, 19 Aug 2010 09:17:02 GMT]]></title><description><![CDATA[<p>Vielleicht ist std::set nicht der geeignete Container für dein Problem, guck dir mal folgende Datenstrukturen an, vielleicht sind sie besser geeignet:</p>
<p><a href="http://de.wikipedia.org/wiki/Trie" rel="nofollow">Trie</a></p>
<p>Edit:<br />
Suffixbaum gehört wohl nicht hierhin o.O</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1941898</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1941898</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Thu, 19 Aug 2010 09:17:02 GMT</pubDate></item><item><title><![CDATA[Reply to Wildcards in std::set Suche on Thu, 19 Aug 2010 19:00:13 GMT]]></title><description><![CDATA[<p>An regular expressions habe ich auch schon mal gedacht, muss mal gucken. Ich programmiere normalerweise immer in Qt, für dieses Projekt geht das aber nicht (es soll eine Wrapper-DLL werden und die möglichst keine Abhängigkeiten haben).</p>
<p>Boost ist eventuell eine Möglichkeit, muss ich mal genauer schauen. Die Suche sollte wirklich schnell sein, deswegen hatte ich erst einmal ein std::set versucht, da es ja binary tree search implementiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1942161</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1942161</guid><dc:creator><![CDATA[TheGrudge]]></dc:creator><pubDate>Thu, 19 Aug 2010 19:00:13 GMT</pubDate></item><item><title><![CDATA[Reply to Wildcards in std::set Suche on Thu, 19 Aug 2010 20:18:36 GMT]]></title><description><![CDATA[<p>Klingt irgendwie irgendwie wie eine Aufgabe für einen <a href="http://en.wikipedia.org/wiki/Lexical_analysis" rel="nofollow">Lexer</a>. Dafür gibt es diverse Standardlösungen.</p>
<p>Grundidee: Für jeden String in deinem set einen entsprechenden <a href="http://en.wikipedia.org/wiki/Deterministic_finite-state_machine" rel="nofollow">DFA</a> bauen. Anschließend alle DFAs zu einen Gesamt-DFA vereinigen.</p>
<p>Sobald der Gesamt-DFA steht, können ankommende Anfragen in O(n) bedient werden, wobei n die Länge der Anfrage bezeichnet. Dafür ist das Aufbauen des Gesamt-DFAs vermutlich recht teuer.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1942181</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1942181</guid><dc:creator><![CDATA[life]]></dc:creator><pubDate>Thu, 19 Aug 2010 20:18:36 GMT</pubDate></item><item><title><![CDATA[Reply to Wildcards in std::set Suche on Fri, 20 Aug 2010 06:13:21 GMT]]></title><description><![CDATA[<p>Mal ein Schnellschuss:</p>
<pre><code class="language-cpp">template&lt;typename Range&gt;
struct WildcardLess
{
    bool operator()(const Range&amp; lh, const Range&amp; rh) const
    {
        typedef typename Range::const_iterator Iter;
        for(Iter il = lh.begin(), lhe = lh.end(), 
            ir = rh.begin(), rhe = rh.end();
            il != lhe &amp;&amp; ir != rhe; ++il, ++ir)
        {
            if (Less(*il, *ir)) return true;
            else if (Less(*ir, *il)) return false;
        }
        return false;
    }
private:
    static bool Less(char lh, char rh)
    {
        if (lh == '*' || rh == '*') return false;
        return lh &lt; rh;
    }
};

int main(int argc, char* argv[])
{
    using namespace std;
    typedef set&lt;string, WildcardLess&lt;string&gt; &gt; wset;
    wset s;
    s.insert(&quot;hallo&quot;);
    s.insert(&quot;huhu&quot;);
    s.insert(&quot;bla&quot;);
    s.insert(&quot;em*&quot;);
    s.insert(&quot;jaja&quot;);
    s.insert(&quot;ema&quot;);

    copy(s.begin(), s.end(), ostream_iterator&lt;string&gt;(cout, &quot;\n&quot;));
    wset::const_iterator i = s.find(&quot;emerald&quot;);
    if (i != s.end())
        cout &lt;&lt; endl &lt;&lt; *i;
    return 0;
}
</code></pre>
<pre><code>bla
em*
hallo
huhu
jaja

em*
</code></pre>
<p>Den WildCardLess:operator() kann man sicher auch noch schöner gestalten.<br />
Und unterschiedlich lange Strings mit gleichem Anfang sind wohl gleich. Aber das bekommst du sicher noch hin:)<br />
Wenn Du die statements nur einmal einliest und dann nur noch suchst, ist wahrscheinlich ein sortierter Vector mit binärer Suche schneller. Gibt es auch fertig, z.b. AssocVector oder (ich glaube) irgendwo versteckt in boost.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1942249</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1942249</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Fri, 20 Aug 2010 06:13:21 GMT</pubDate></item><item><title><![CDATA[Reply to Wildcards in std::set Suche on Sat, 21 Aug 2010 03:57:22 GMT]]></title><description><![CDATA[<p>Hallo brotbernd,</p>
<p>danke für den Tipp, interessante Lösung. Werde ich mir gleich mal genauer anschauen!!!<br />
<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/1942609</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1942609</guid><dc:creator><![CDATA[TheGrudge]]></dc:creator><pubDate>Sat, 21 Aug 2010 03:57:22 GMT</pubDate></item><item><title><![CDATA[Reply to Wildcards in std::set Suche on Sat, 21 Aug 2010 08:44:29 GMT]]></title><description><![CDATA[<p>Das wird nicht funktionieren. Mal abgesehen, dass es sowieso nicht für sowas wie</p>
<pre><code>Em*ee
Em*a*
usw
</code></pre>
<p>funktionieren kann, klappt es nichtmal mit ausschließlich abschließenden Wildcards. So erzeugt</p>
<pre><code class="language-cpp">s.insert(&quot;hallo&quot;);
s.insert(&quot;huhu&quot;);
s.insert(&quot;bla&quot;);
s.insert(&quot;ema&quot;);
s.insert(&quot;jaja&quot;);
s.insert(&quot;em*&quot;);
</code></pre>
<p>das Set {&quot;bla&quot;, &quot;ema&quot;, &quot;hallo&quot;, &quot;huhu&quot;, &quot;jaja&quot;}, in dem &quot;emerald&quot; nicht enthalten ist.</p>
<p>Imho ist einfach die ganze Idee mit dem <code>std::set</code> schlecht..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1942640</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1942640</guid><dc:creator><![CDATA[life]]></dc:creator><pubDate>Sat, 21 Aug 2010 08:44:29 GMT</pubDate></item><item><title><![CDATA[Reply to Wildcards in std::set Suche on Sat, 21 Aug 2010 09:43:36 GMT]]></title><description><![CDATA[<p>life schrieb:</p>
<blockquote>
<p>Sobald der Gesamt-DFA steht, können ankommende Anfragen in O(n) bedient werden, wobei n die Länge der Anfrage bezeichnet. Dafür ist das Aufbauen des Gesamt-DFAs vermutlich recht teuer.</p>
</blockquote>
<p>Tools wie <a href="http://flex.sourceforge.net/" rel="nofollow">flex</a> und <code>yacc</code> können dir den Quelltext dafür generieren, falls die Worte im Voraus feststehen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1942667</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1942667</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sat, 21 Aug 2010 09:43:36 GMT</pubDate></item><item><title><![CDATA[Reply to Wildcards in std::set Suche on Sat, 21 Aug 2010 10:21:10 GMT]]></title><description><![CDATA[<p>Ich benutze ANTLR in dieser ProxyDLL, um Oracle-SQL-Grammatik zu parsen.<br />
Die Worte im SET stehen nicht fest, sie kommen aus einer Configdatei, die für jeden Anwender unterschiedlich ist.</p>
<p>Es gibt Configs mit bis zu 260.000 Einträgen, eventuell wird dies sogar noch mehr.<br />
Deswegen sollen Wildcards eingeführt werden, um die Configdatei ein wenig kleiner zu bekommen.</p>
<p>Also eine feste Grammatik gibt es nicht, deswegen dachte ich an ein Set (oder vergleichbares mit einer schnellen Suche).</p>
<p>Der Vorschlag von brotbernd scheint für simple Wildcards (em*) perfekt zu funktionieren, jedenfalls bei meinen bisherigen Tests. Eventuell reicht mir das sogar, wenn ich festlege, das nur diese Form von Configelementen erlaubt ist, dann hätte ich immer noch ein Set mit einer custom binary search, wäre erst einmal in Ordnung.</p>
<p>Ich werde mir dennoch noch einmal die BOOST library anschauen, vielleicht finde ich schon was komplett fertig implementiertes für meine Zwecke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1942682</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1942682</guid><dc:creator><![CDATA[TheGrudge]]></dc:creator><pubDate>Sat, 21 Aug 2010 10:21:10 GMT</pubDate></item><item><title><![CDATA[Reply to Wildcards in std::set Suche on Sat, 21 Aug 2010 10:35:52 GMT]]></title><description><![CDATA[<p>TheGrudge schrieb:</p>
<blockquote>
<p>Der Vorschlag von brotbernd scheint für simple Wildcards (em*) perfekt zu funktionieren, jedenfalls bei meinen bisherigen Tests. Eventuell reicht mir das sogar, wenn ich festlege, das nur diese Form von Configelementen erlaubt ist, dann hätte ich immer noch ein Set mit einer custom binary search, wäre erst einmal in Ordnung.</p>
</blockquote>
<p>Ich sehe bei diesem Vorschlag allerdings nicht, dass der erstellte Operator eine Vollordnung der Elemente herstellt. Falls das der Fall ist, führt das dazu, dass <code>std::set</code> früher oder später Blödsinn macht. D.h. Elemente, die eigentlich im <code>set</code> drin sind, werden <em>nicht gefunden</em> und können nicht mehr <em>gelöscht</em> werden.</p>
<p>Ein weiteres Problem ist, dass der * genau als ein einzelenes Zeichen gematcht wird. Das kann aber vollkommen falsch sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1942693</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1942693</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sat, 21 Aug 2010 10:35:52 GMT</pubDate></item><item><title><![CDATA[Reply to Wildcards in std::set Suche on Sat, 21 Aug 2010 11:12:53 GMT]]></title><description><![CDATA[<p>Ich habe doch schon ein Beispiel aufgezeigt, bei dem brotbernds Quellcode auch bei simplen Wildcards versagt.</p>
<p>Im Übrigen kann man den Gesamt-DFA natürlich auch dynamisch erzeugen. Das ist nur nicht der normale Einsatzzweck Lexer-Generatoren wie flex. Ggf. müsste man sich hier also selbst was zusammenbauen.</p>
<p>Wenn du die Reg.Expr. so einschränkst, dass die Wildcards nur am Ende stehen dürfen, dürfte das Gesamt-DFA Aufbauen auch sehr effizient möglich sein (dann sind wir im Prinzip wieder bei DocShoes prefix-trees).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1942705</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1942705</guid><dc:creator><![CDATA[life]]></dc:creator><pubDate>Sat, 21 Aug 2010 11:12:53 GMT</pubDate></item><item><title><![CDATA[Reply to Wildcards in std::set Suche on Sun, 22 Aug 2010 13:37:46 GMT]]></title><description><![CDATA[<p>Ich habe nun folgenden Testcode, der scheint recht gut zu funktionieren:</p>
<pre><code class="language-cpp">#include &lt;boost/regex.hpp&gt;
#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;set&gt;
#include &lt;algorithm&gt;

using namespace std;

bool regExpMatch(const std::string&amp; str1, const std::string&amp; str2)
{
    std::string tmp = str1;
    size_t lookHere = 0;
    size_t foundHere;
    string from(&quot;*&quot;);
    string to(&quot;.*&quot;);
    while ((foundHere = tmp.find(from, lookHere)) != string::npos)
    {
        tmp.replace(foundHere, from.size(), to);
        lookHere = foundHere + to.size();
    }
    boost::regex re(tmp);
    boost::match_flag_type flags = boost::match_default;
    return !(boost::regex_match(str2, re, flags));
}

bool myCompare(const string&amp; str1, const string&amp; str2)
{

    if (str1.find(&quot;*&quot;) != string::npos)
    {
        return regExpMatch(str1, str2);
    }
    else if (str2.find(&quot;*&quot;) != string::npos)
    {
        return regExpMatch(str2, str1);
    }
    else
    {
        int r = str1.compare(str2);
        return (r &lt; 0);
    }
}

void addItem(set&lt;string&gt; &amp;myset, const string&amp; str)
{
    string tmp = str;
    transform(tmp.begin(), tmp.end(), tmp.begin(), ::toupper);
    myset.insert(tmp);
}

int main()
{
    set&lt;string&gt; allowedStatements;
    addItem(allowedStatements, &quot;schema.&quot;);
    addItem(allowedStatements, &quot;Ha*o&quot;);
    addItem(allowedStatements, &quot;em*y*&quot;);
    addItem(allowedStatements, &quot;aaaaA&quot;);
    addItem(allowedStatements, &quot;sshdsjdsdhsdjhsd&quot;);

    set&lt;string&gt; searchTerms;
    addItem(searchTerms, &quot;schema.&quot;);
    addItem(searchTerms, &quot;bla&quot;);
    addItem(searchTerms, &quot;hallllllllllllllllllo&quot;);
    addItem(searchTerms, &quot;hausmeister_otto&quot;);
    addItem(searchTerms, &quot;employee&quot;);

    bool found = false;
    for (set&lt;string&gt;::const_iterator it = searchTerms.begin(); it != searchTerms.end(); ++it)
    {
        cout &lt;&lt; &quot;Searching for '&quot; &lt;&lt; *it &lt;&lt; &quot;'... &quot;;
        found = (binary_search(allowedStatements.begin(), allowedStatements.end(), *it, myCompare));
        cout &lt;&lt; (found ? &quot;FOUND!&quot; : &quot;NOT FOUND!&quot;) &lt;&lt; endl;
    }
}
</code></pre>
<p>Wenn ich nur das '*' Wildcard zulasse, scheine ich mit dieser Lösung eigentlich ganz gut zurecht zu kommen.<br />
Bis jetzt waren alle Tests positiv, werde aber noch einen CPPUnit-Test schreiben, um die Funktion zu verifizieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1942988</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1942988</guid><dc:creator><![CDATA[TheGrudge]]></dc:creator><pubDate>Sun, 22 Aug 2010 13:37:46 GMT</pubDate></item><item><title><![CDATA[Reply to Wildcards in std::set Suche on Sun, 22 Aug 2010 13:42:59 GMT]]></title><description><![CDATA[<p>Hmm schade da geht doch noch was schief:</p>
<blockquote>
<p>Searching for 'BLA'... NOT FOUND!<br />
<strong>Searching for 'EMPLOYEE'... NOT FOUND!</strong><br />
Searching for 'HALLLLLLLLLLLLLLLLLLO'... FOUND!<br />
Searching for 'HAUSMEISTER_OTTO'... FOUND!<br />
Searching for 'SCHEMA.'... FOUND!</p>
</blockquote>
<p>Aus irgendeinem Grund scheint das nicht richtig zu matchen.<br />
Das Problem ist wohl, das ich nicht genau weiß, was ich in der Compare-Funktion zurückliefern soll. Ich liefere FALSE wenn es matched, so ähnlich wie die compare() Funktion von std::string.<br />
Aber das scheint wohl nicht richtig zu sein?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1942991</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1942991</guid><dc:creator><![CDATA[TheGrudge]]></dc:creator><pubDate>Sun, 22 Aug 2010 13:42:59 GMT</pubDate></item><item><title><![CDATA[Reply to Wildcards in std::set Suche on Sun, 22 Aug 2010 13:52:46 GMT]]></title><description><![CDATA[<p>Gleichheit in assoziativen Containern bedeutet Äquivalenz, d.h. weder kleiner noch größer. Ein Element wird also gefunden wenn gilt:</p>
<pre><code>!(e1 &lt; e2) &amp;&amp; !(e2 &lt; e1)
</code></pre>
<p>Schau Dir nochmal eine C++ Referenz an. Was Du da machst (z.B. binary_search in einem set) macht überhaupt keinen Sinn.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1942996</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1942996</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Sun, 22 Aug 2010 13:52:46 GMT</pubDate></item><item><title><![CDATA[Reply to Wildcards in std::set Suche on Wed, 25 Aug 2010 12:39:35 GMT]]></title><description><![CDATA[<p>Hmm irgendwie verstehe ich nicht ganz, warum binary_search mit einem Set keinen Sinn macht. Ich dachte std::set implementiert dies intern, wenn ich std::set::find nutze?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1944216</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1944216</guid><dc:creator><![CDATA[TheGrudge]]></dc:creator><pubDate>Wed, 25 Aug 2010 12:39:35 GMT</pubDate></item></channel></rss>