Нужна помощь с структурами данных C ++ Trie - PullRequest
1 голос
/ 05 августа 2010

Я пытаюсь написать функцию 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 голосов
/ 05 августа 2010

Если вы используете этот набор , этот пример кода указывает, что вам нужно больше параметров шаблона в вашем объявлении, чтобы указать, как разделить ключи, чтобы он мог выполнить три.индексирование и особенно поиск префиксов:

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

Также обратите внимание на использование prefix_range в функции поиска в связанном примере кода.

...