2013-12-10 1 views
0

Теперь у меня есть секундомер dict, и список слов нужно обрабатывать. Как я могу кодировать, чтобы эффективно использовать?Как избавиться от стоп-слов более эффективно с помощью C++

Мой код таков: загрузите dict в память, используя vectorstopword, а затем итератор wordlist, найдите, если wordlist в секундоме, если не в, strcpy в newwordlist.

for(i=0;i<len;i++) 
{ 
    stopword.find(a[i])=stopword.end()); 
    strcpy(new_word,a[i]); 
} 

Но этот код нужно 2 петли? Могут ли другие способы imporve это? Использование хеша вместо vertor?

+0

Используется для списка стоп-слов unordered_map – qwr

+0

, что вы имеете в виду, используя map.find более быстро, чем vector.find? – liumilan

+0

unordered_map find is O (1) .yes, если ваш список достаточно большой. Итак, да используйте хеш – qwr

ответ

0

Вы можете хранить свои стоп-слова в структуре под названием Trie. Это дерево на основе префикса, которое позволит вам искать все стоп-слова сразу, по-символам.

См Википедия: http://en.wikipedia.org/wiki/Trie

+0

ОК, я рассмотрю его позже. Но три-дерево намного сложнее реализовать. Поэтому я хотел бы сначала использовать карту – liumilan

Смежные вопросы