Hilfe mit C ++ Trie-Datenstrukturen benötigen
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++));
}
}
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.