Frage

Ich versuche, eine C ++ Funktion, dass Spiele zu schreiben, ob eine Zeichenfolge in einem Wörterbuch vorhanden ist. Es kann eine Teilzeichenfolge oder eine vollständige Zeichenfolge sein. SO Ich lese jeden und jede Zeile in einen Trie

           trie< std::string, int > dict;
           dict.insert(make_pair(line,i++));
            // when i search for a string it always returns invalid.
           if(dict.find("AA")!=dict.end())
               cout<<valid<<endl;
           else
               cout<<invalid<<endl;

Kann jemand bitte helfen Sie mir mit diesem. Ich habe Code für Wörter im Wörterbuch zu lesen.

if(myfile.is_open())
{

      int i=0;
  string line;

      cout<<dict.size()<<endl;
      while(!myfile.eof())
  {
      getline(myfile,line);
      dict.insert(make_pair(line,i++));



  }
 } 
War es hilfreich?

Lösung

Wenn Sie mit dieser Trie , < a href = "http://gcc.gnu.org/viewcvs/*checkout*/trunk/libstdc%2B%2B-v3/testsuite/ext/pb_ds/example/trie_prefix_search.cc" rel = "nofollow noreferrer"> diese Beispielcode zeigen Sie mehr Template-Parameter in Ihrer Erklärung muss ihm sagen, wie die Schlüssel aufgeteilt, damit es die Trie-Indizierung tun und vor allem Präfix gesucht:

trie< std::string, int, string_trie_e_access_traits<>, pat_trie_tag, trie_prefix_search_node_update> dict;

Beachten Sie auch die Verwendung von prefix_range in der Suchfunktion in dem verknüpften Beispielcode.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top