Привет друзья.Илья. Белый Сов. Дима-Т. Зяма. Вася. Саша Планетарный. Руслан. Жук-ботан и другие мемберы.
Несколько топиков назад мы обсуждали конкатенации строк и прочее (
конкатенация строки в одну переменную ).
И в топике была упомянута такая структура данных как rope (веревка)
https://en.wikipedia.org/wiki/Rope_(data_structure)Структура экзотична и КМК мало где применяется. И у меня возникла мысль - найти ей применение.
Попробовать поработать с крупным текстом и сравнить с обычными строковыми сущностями которые юзаем каждый день.
За примером решил далеко не ходить и взять
Войну и Мир одного печально известного бородача.
Почему именно это? Ну... ее легко скачать.
http://az.lib.ru/t/tolstoj_lew_nikolaewich/И весь роман можно оптимально уложить в "Rope" для дальнейших экспериментов.
Далее. Как всегда - бенчмарк. Нам нужна реализация Rope. И собственно задание
применимо к текстовому файлу
Войны и Мира.1.
I/O. Загрузка. Собсно надо загрузить текст в эту структуру и померять скорость (символов/сек).
2.
Расчеты. Посчитать количество слов. И среднюю длину слова. Посчитать количество уникальных слов.
3.
Трансформации. Здесь нам интересно заменить все немецкие и французские и прочие иностранные слова
на русские. (Иду на хитрость и считаю что dictionary уже у нас есть). Ну и время соотв. посчитать.
4.
Транспортные расходы и КПД. . Здесь надо посчитать как дорого нам обходится веревка. В сравнении с тем
если-бы мы весь роман хранили в одной строке TString, CString, std::string ... varchar. e.t.c.
5.
Поисковые возможности.. Нужно уметь находить нужное слово. И при этом возвращать номер строки и позицию.
Рад буду слышать ваши мысли и замечания.
P.S. Вопросы всяких там html и кодировок я оставляю за кадром.
Они не особо интересны в данном топике и я надеюсь что они не станут
блокером в нашем обсуждении.