Здравствуйте, а я все со своим, со старым всяким и глупым.
Не знаю с чего начать, а посему начну с того, что делается и как:
- Читается файл, текстовый. В нём слова, разные. В проекте это w и w2
- Слова унифицируются, режутся всякие символы и проверяются на русскость, затем добавляются в прошитое дерево (все, даже повторяющиеся)
- Из дерева обходом достаются слова и пихаются в мап, вктором ключ — хеш строки. Повторяющиеся слова инкрементируют счетчик слова.
- Из мапа — в обычное бинарное дерво, но считается, насколько далеко от корня ушло слово
А теперь о плохом: из файла w2 ~220 тысяч слов заносятся в прошитое дерево 6.5 минут на моей машине. (пункт 2)
Предпологаемые узкие места:
- выделение памяти
- долгая обработка слова
- кривые руки
- Возможно стоит в первом дереве просто хранить стринг, а не структуру со всеми обвесами
Компилировать просто: qmake && make