Здравствуйте, korzhik, Вы писали:
K>Здравствуйте, c-smile, Вы писали:
CS>>Второй вариант — воспользоваться предлагаемой имплементацией ternary tree [2]:
K>спасибо, очень полезная вещь.
K>правда я пока не тестил, но думаю от вас всё идёт со знаком качества.
Спасибо
K>кстати имплементацию в boost::spirit'е не смотрели?
K>если интересно то путь такой boost\spirit\symbols\impl\tst.ipp
Спасибо за ссылку, глянул.
На вскидку что бросается в глаза сразу — это аллокция nodes в heap что в общем-то не эффективно для массива структур имеющих одинаковый размер экземпляров. Плюс расход памяти.
У меня например вместо указателя на node хранится его индекс который в большинстве случав может быть short int а не pointer как в boost/spirit.
Например для моего тестового примера таблица имен цветов в HTML (
http://www.w3schools.com/html/html_colornames.asp) примерно 140 элементов.
Количество nodes примерно 1030. (Для справки общее количество символов во всех словах таблицы около 1200).Т.е. при аллокации на хипе несколько затратно/неэффективно получается.