我正在尝试编写一个C ++函数,该函数匹配字典中是否存在字符串。它可以是部分字符串或完整字符串。所以我把每一行都读成了一个特里
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;
有人可以帮我这个。我添加了用于在字典中阅读单词的代码。
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++));
}
}
答案 0 :(得分:0)
如果您正在使用this trie,this sample code表示您需要在声明中使用更多模板参数,以告诉它如何拆分密钥,以便它可以执行trie索引,尤其是前缀搜索:< / p>
trie< std::string, int, string_trie_e_access_traits<>, pat_trie_tag, trie_prefix_search_node_update> dict;
另请注意在链接的示例代码中使用prefix_range
搜索功能。