Блок задач

3. Структуры данных

Темы
Сложность 3

Задача «Частотный словарь»

Часто́тный слова́рь (или частотный список) — набор слов данного языка (или подъязыка) вместе с информацией о частоте их встречаемости.

Необходимо разработать программу, составляющую частотный словарь на основе входного текста.

Входные данные

Текстовый файл, содержащий большое количество слов (на выбор студента).

Задача

  1. Разработать класс, содержащий алгоритм, подсчитывающий, сколько раз каждое из слов встречается во входном файле, и выводящий результаты в другой файл. Алгоритм должен иметь возможность использования различных STL-контейнеров для своей работы (std::list, std::vector, std::map).
  2. Для возможности использования различных контейнеров следует реализовать шаблонный класс-адаптер для контейнеров, который будет иметь метод AddWord() и будет добавлять вхождение слова в контейнер (для подсчета). Для различных контейнеров нужно будет сделать специализации шаблона этого класса.

Пример вывода

Вывод в текстовый файл:

  1. Время работы программы.
  2. Вывод всех слов и количества их вхождений в формате: “слово” - “количество вхождений”.
Time - 100.2 sec
-----------------

my - 10
hey - 100
student - 1
...

Примечание

Необходимо быть готовым пояснить соотношение времен работы программы для различных контейнеров.