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 に答える