<?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[kann ich binary_search für wörter suche nutzen?]]></title><description><![CDATA[<p>hi mal ne frage, wenn ich mit binary_search nach zahlen werte suche gibt die fkt mir ja nur ne boolsche antwort zurueck, kann ich also auch mit binary_search eine datei auslasen und so nach einen wort suchen? also erst die datei in einen vector laden und dann suchen?, geht das ueberhaupt ne komplette datei in einen vector zuladen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/154494/kann-ich-binary_search-für-wörter-suche-nutzen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 08 Sep 2026 01:33:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/154494.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 27 Jul 2006 16:23:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to kann ich binary_search für wörter suche nutzen? on Thu, 27 Jul 2006 16:26:02 GMT]]></title><description><![CDATA[<p>hi mal ne frage, wenn ich mit binary_search nach zahlen werte suche gibt die fkt mir ja nur ne boolsche antwort zurueck, kann ich also auch mit binary_search eine datei auslasen und so nach einen wort suchen? also erst die datei in einen vector laden und dann suchen?, geht das ueberhaupt ne komplette datei in einen vector zuladen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1105539</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1105539</guid><dc:creator><![CDATA[T0bi]]></dc:creator><pubDate>Thu, 27 Jul 2006 16:26:02 GMT</pubDate></item><item><title><![CDATA[Reply to kann ich binary_search für wörter suche nutzen? on Thu, 27 Jul 2006 16:26:51 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>binäre suche funktioniert nur auf geordneten Datenstrukturen (und kann durchaus den Index zurückliefern). Du kannst damit suchen, was du willst, nur es muss halt geordnet vorliegen. Ich schätze mal, deine Datei liegt nicht geordnet vor... .</p>
<p>Wenn du oft suchen musst, lohnt es sich womöglich, die Daten zu sortieren bzw. sortiert zu halten. Andernfalls reicht vllt. eine Sequentielle Suche schon aus.</p>
<p>MfG</p>
<p>GPC</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1105542</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1105542</guid><dc:creator><![CDATA[GPC]]></dc:creator><pubDate>Thu, 27 Jul 2006 16:26:51 GMT</pubDate></item><item><title><![CDATA[Reply to kann ich binary_search für wörter suche nutzen? on Thu, 27 Jul 2006 18:47:49 GMT]]></title><description><![CDATA[<p>sequentielle suche... ich weiss net was du meinst koenntest dus mir mal erklaeren, THX</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1105615</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1105615</guid><dc:creator><![CDATA[T0bi]]></dc:creator><pubDate>Thu, 27 Jul 2006 18:47:49 GMT</pubDate></item><item><title><![CDATA[Reply to kann ich binary_search für wörter suche nutzen? on Thu, 27 Jul 2006 18:50:33 GMT]]></title><description><![CDATA[<p>sequentielle Suche - ein Element nach dem anderern überprüfen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1105616</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1105616</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 27 Jul 2006 18:50:33 GMT</pubDate></item><item><title><![CDATA[Reply to kann ich binary_search für wörter suche nutzen? on Fri, 28 Jul 2006 05:59:02 GMT]]></title><description><![CDATA[<p>Für den Anfang könntes du Wort für Wort in ein std::set einlesen und dieses zum Suchen benützen.</p>
<p>Wenn das klappt kannst du versuchen dich über Google zu einer Hashmap vorzuarbeiten <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>MfG SideWinder</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1105789</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1105789</guid><dc:creator><![CDATA[SideWinder]]></dc:creator><pubDate>Fri, 28 Jul 2006 05:59:02 GMT</pubDate></item><item><title><![CDATA[Reply to kann ich binary_search für wörter suche nutzen? on Fri, 28 Jul 2006 20:52:23 GMT]]></title><description><![CDATA[<p>T0bi schrieb:</p>
<blockquote>
<p>hi mal ne frage, wenn ich mit binary_search nach zahlen werte suche gibt die fkt mir ja nur ne boolsche antwort zurueck, kann ich also auch mit binary_search eine datei auslasen und so nach einen wort suchen? also erst die datei in einen vector laden und dann suchen?, geht das ueberhaupt ne komplette datei in einen vector zuladen?</p>
</blockquote>
<p>'binary_search' sagt Dir nur, ob das was Du suchst in dem vorgegebenen Intervall vorhanden ist oder nicht. Wie schon erwähnt setzt es eine geordnete Reihenfolge voraus.</p>
<p>Datei mit Wörtern in vector laden ist auch kein Problem.</p>
<pre><code class="language-cpp">std::ifstream file( &quot;Datei.txt&quot; );
  std::vector&lt; std::string &gt; v( std::istream_iterator&lt; std::string &gt;( file ), 
    std::istream_iterator&lt; std::string &gt;() ); // .. is drin

  // dann sortieren
  std::sort( v.begin(), v.end() );
  if( std::binary_search( v.begin(), v.end(), &quot;Hallo&quot; ) )
    std::cout &lt;&lt; &quot;Wort 'Hallo' ist enthalten &quot; &lt;&lt; std::endl;
</code></pre>
<p>Wenn Du nur einmal - also nur ein Wort - suchst, ist 'find' sicher schneller. Funktionieren sollte auch folgendes (ohne Container):</p>
<pre><code class="language-cpp">std::ifstream file( &quot;Datei.txt&quot; );
  if( std::find( std::istream_iterator&lt; std::string &gt;( file ), 
          std::istream_iterator&lt; std::string &gt;(), &quot;Hallo&quot; ) 
      != std::istream_iterator&lt; std::string &gt;() ) 
    std::cout &lt;&lt; &quot;Wort 'Hallo' ist enthalten &quot; &lt;&lt; std::endl;
</code></pre>
<p>Wenn Du öfter suchst, loht sich evt. auch der set. Das geht so:</p>
<pre><code class="language-cpp">std::ifstream file( &quot;Datei.txt&quot; );
  std::set&lt; std::string &gt; s;
  std::copy( std::istream_iterator&lt; std::string &gt;( file ), 
          std::istream_iterator&lt; std::string &gt;(), 
          std::inserter( s, s.begin() ) );
  if( s.find( &quot;Hallo&quot; ) != s.end() )
    std::cout &lt;&lt; &quot;Wort 'Hallo' ist enthalten &quot; &lt;&lt; std::endl;
</code></pre>
<p>der set.find ist immer eine binäre Suche.</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1106390</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1106390</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Fri, 28 Jul 2006 20:52:23 GMT</pubDate></item><item><title><![CDATA[Reply to kann ich binary_search für wörter suche nutzen? on Sat, 29 Jul 2006 08:24:51 GMT]]></title><description><![CDATA[<p>thanx werner.<br />
nur noch mal um sicher zugehen ist es dan also richtig wenn ich wörter so in ein set packe?:</p>
<pre><code class="language-cpp">#include&lt;vcl.h&gt;
#include&lt;string&gt;
#include&lt;set&gt;
#include&lt;iostream&gt;
    using namespace std;

int main()
{

    string neuesWort;
    set&lt; string &gt; Woerterbuch;
    set&lt; string &gt;::iterator iter;

    cout &lt;&lt; &quot; Gib ein Wort ein! : &quot;; cin &gt;&gt; neuesWort;

    cout &lt;&lt; &quot;\n Gib noch ein Wort ein! : &quot;; cin &gt;&gt; neuesWort;

    Woerterbuch.insert( neuesWort );

    cout &lt;&lt; &quot;\n\n Derzeitig sich befindene Woerter im Woerterbuch:\n\n &quot;;

    for ( iter = Woerterbuch.begin(); iter != Woerterbuch.end(); ++iter ) {

        int i = 1;

        cout &lt;&lt; i &lt;&lt; &quot;.Wort -  &quot; &lt;&lt; *iter &lt;&lt; &quot;\n &quot;;
        ++i;
    }

    cin.sync();
    cin.get();
    return 0;
}
//---------------------------------------------------------------------------
</code></pre>
<p>doch eine frage, denn ich weiss ich hab was falsch gemacht *g*, wenn der iterator durchs woerterbuch blaettert und mir alles wörter raus suchen soll gibt er mir nur das letzte wieder aus, wieso???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1106501</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1106501</guid><dc:creator><![CDATA[T0bi]]></dc:creator><pubDate>Sat, 29 Jul 2006 08:24:51 GMT</pubDate></item><item><title><![CDATA[Reply to kann ich binary_search für wörter suche nutzen? on Sat, 29 Jul 2006 09:45:53 GMT]]></title><description><![CDATA[<p>Werner Salomon schrieb:</p>
<blockquote>
<p>T0bi schrieb:</p>
<blockquote>
<p>hi mal ne frage, wenn ich mit binary_search nach zahlen werte suche gibt die fkt mir ja nur ne boolsche antwort zurueck, kann ich also auch mit binary_search eine datei auslasen und so nach einen wort suchen? also erst die datei in einen vector laden und dann suchen?, geht das ueberhaupt ne komplette datei in einen vector zuladen?</p>
</blockquote>
<p>'binary_search' sagt Dir nur, ob das was Du suchst in dem vorgegebenen Intervall vorhanden ist oder nicht.</p>
</blockquote>
<p>Kann man ja auch leicht selber schreiben, um den Index zurückzukriegen:</p>
<pre><code class="language-cpp">template &lt;typename T&gt;
  int bsearch(T *array, size_t l, size_t u, const T&amp; t) {
    if (l&gt;u)
      return -1;

    size_t m = (l+u)/2;
    if (array[m] &lt; t)
      return bsearchr(array,m+1,u,t);
    else if (array[m] == t)
      return m;
    else if (array[m] &gt; t)
      return bsearchr(array,l,m-1,t);
  };
</code></pre>
<blockquote>
<p>nur noch mal um sicher zugehen ist es dan also richtig wenn ich wörter so in ein set packe?:</p>
</blockquote>
<p>passt.</p>
<blockquote>
<p>doch eine frage, denn ich weiss ich hab was falsch gemacht *g*, wenn der iterator durchs woerterbuch blaettert und mir alles wörter raus suchen soll gibt er mir nur das letzte wieder aus, wieso???</p>
</blockquote>
<p>Du solltest vllt. gleich nach dem ersten Einlesen ins set einfügen, weil so wie du's jetzt machst, überschreibst du ja neuesWort beim zweiten Einlesen. So ist's korrekt:</p>
<pre><code class="language-cpp">cout &lt;&lt; &quot; Gib ein Wort ein! : &quot;; cin &gt;&gt; neuesWort;

    Woerterbuch.insert( neuesWort );  //blub... das hier fehlte

    cout &lt;&lt; &quot;\n Gib noch ein Wort ein! : &quot;; cin &gt;&gt; neuesWort;

    Woerterbuch.insert( neuesWort );
</code></pre>
<p>EDIT: Quote tags in Ordnung gebracht</p>
<p>MfG</p>
<p>GPC</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1106533</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1106533</guid><dc:creator><![CDATA[GPC]]></dc:creator><pubDate>Sat, 29 Jul 2006 09:45:53 GMT</pubDate></item><item><title><![CDATA[Reply to kann ich binary_search für wörter suche nutzen? on Sat, 29 Jul 2006 13:29:14 GMT]]></title><description><![CDATA[<p>alles klar funktioniert supi... nur eins vllt. noch, wie kann ich die var i erhöhgen das dann 1. wort, 2. wort erscheint und nicht immer 1. wort, 1. wort ????</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1106675</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1106675</guid><dc:creator><![CDATA[T0bi]]></dc:creator><pubDate>Sat, 29 Jul 2006 13:29:14 GMT</pubDate></item><item><title><![CDATA[Reply to kann ich binary_search für wörter suche nutzen? on Mon, 31 Jul 2006 11:24:08 GMT]]></title><description><![CDATA[<p>indem du das int i = 0; aus der for-Schleife raus nimmst. So deklarierst du i bei jedem Schleifendurchlauf neu.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1107672</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1107672</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Mon, 31 Jul 2006 11:24:08 GMT</pubDate></item></channel></rss>