需要一些C ++ Trie数据结构的帮助

时间:2010-08-05 00:14:15

标签: c++ trie

我正在尝试编写一个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++));



  }
 } 

1 个答案:

答案 0 :(得分:0)

如果您正在使用this triethis sample code表示您需要在声明中使用更多模板参数,以告诉它如何拆分密钥,以便它可以执行trie索引,尤其是前缀搜索:< / p>

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

另请注意在链接的示例代码中使用prefix_range搜索功能。