1

我正在尝试编写一个与字典中是否存在字符串相匹配的 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++));



  }
 } 
4

1 回答 1

0

如果您使用这个 trie这个示例代码表明您需要在声明中使用更多模板参数来告诉它如何拆分键,以便它可以进行 trie 索引,尤其是前缀搜索:

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

还要注意prefix_range链接示例代码中搜索功能中的使用。

于 2010-08-05T00:42:34.830 回答