Это команда gperf, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.
ПРОГРАММА:
ИМЯ
gperf - генерирует идеальную хеш-функцию из набора ключей
СИНТАКСИС
gperf [ВАРИАНТ] ... [ВХОДНОЙ ФАЙЛ]
ОПИСАНИЕ
GNU 'gperf' генерирует идеальные хеш-функции.
Если длинный параметр показывает аргумент как обязательный, то он является обязательным для эквивалента.
короткий вариант тоже.
Результат файл Расположение:
--выходной файл=ФАЙЛОВ Записать вывод в указанный файл.
Результаты выводятся на стандартный вывод, если выходной файл не указан или -.
вход файл интерпретация:
-e, --делители=РАЗДЕЛИТЕЛЬ-СПИСОК
Разрешить пользователю указывать строку, содержащую разделители, используемые для отделения ключевых слов от
их атрибуты. По умолчанию ",".
-t, - тип конструкции
Позволяет пользователю включать объявление структурированного типа для сгенерированного кода. Любой
текст перед %% считается частью объявления типа. Ключевые слова и дополнительные
поля могут следовать за этим, по одной группе полей в строке.
--игнорировать регистр
Считайте символы ASCII в верхнем и нижнем регистре эквивалентными. Обратите внимание, что языковой стандарт
зависимые сопоставления регистра игнорируются.
Язык для выходной код:
-L, - язык=НАЗВАНИЕ ЯЗЫКА
Создает код на указанном языке. В настоящее время обрабатываются языки C ++,
ANSI-C, C и KR-C. По умолчанию - C.
Подробнее in выходной код:
-K, --имя-слота=ИМЯ
Выберите название ключевого слова в структуре ключевого слова.
-F, --initializer-суффикс=ИНИЦИАЛИЗАТОРЫ
Инициализаторы для дополнительных компонентов в структуре ключевых слов.
-H, - имя-хеш-функции=ИМЯ
Укажите имя сгенерированной хеш-функции. По умолчанию - «хэш».
-N, --lookup-имя-функции=ИМЯ
Укажите имя сгенерированной функции поиска. Имя по умолчанию - in_word_set.
-Z, - имя-класса=ИМЯ
Укажите имя сгенерированного класса C ++. Имя по умолчанию - Perfect_Hash.
-7, - семибитный
Предположим, 7-битные символы.
-l, --сравнить-длины
Сравните длины ключей, прежде чем пытаться сравнить строки. Это необходимо, если
Ключевые слова содержат NUL байтов. Это также помогает сократить количество струн.
сравнения, сделанные во время поиска.
-c, --compare-strncmp
Сгенерируйте код сравнения, используя strncmp, а не strcmp.
-C, --readonly-таблицы
Сделайте содержимое сгенерированных таблиц поиска постоянным, т. Е. Доступным только для чтения.
-E, --enum
Определите постоянные значения, используя локальное перечисление для функции поиска, а не с помощью
определяет.
-I, --включает в себя
Включите необходимый системный включаемый файл в начале кода.
-G, --global-таблица
Создавайте статическую таблицу ключевых слов как статическую глобальную переменную, а не
скрытие его внутри функции поиска (что является поведением по умолчанию).
-P, --пик
Оптимизируйте сгенерированную таблицу для включения в разделяемые библиотеки. Это снижает
время запуска программ, использующих общую библиотеку, содержащую сгенерированный код.
-Q, --string-имя-пула=ИМЯ
Укажите имя пула строк, сгенерированного опцией --пик. Имя по умолчанию
"струнная лужа".
--null-строки
Используйте пустые строки вместо пустых строк для пустых записей таблицы ключевых слов.
-W, --слово-имя-массива=ИМЯ
Укажите имя массива списка слов. Имя по умолчанию - «список слов».
- длина-имя-таблицы=ИМЯ
Укажите имя массива таблицы длин. Имя по умолчанию - lengthtable.
-S, --выключатель=СЧИТАТЬ
Заставляет сгенерированный код C использовать схему оператора switch, а не массив
Справочная таблица. Это может привести к сокращению затрат времени и места для
некоторые ключевые файлы. Аргумент COUNT определяет количество операторов переключения.
сгенерировано. Значение 1 генерирует 1 переключатель, содержащий все элементы, значение
2 генерирует 2 таблицы с 1/2 элементов в каждой таблице и т. Д. Если COUNT очень
большой, скажем 1000000, сгенерированный код C выполняет двоичный поиск.
-T, --omit-struct-тип
Предотвращает передачу объявления типа в выходной файл. Используйте эту опцию
если тип уже определен где-то еще.
Алгоритм занятых by производительность:
-k, - ключевые позиции=КЛЮЧИ
Выберите ключевые позиции, используемые в хэш-функции. Допустимый диапазон выбора
между 1-255 включительно. Позиции разделяются запятыми, диапазоны могут быть
используются, а ключевые позиции могут располагаться в любом порядке. Кроме того, метасимвол '*'
заставляет сгенерированную хеш-функцию учитывать ВСЕ ключевые позиции, а $ указывает
«последний символ» ключа, например, $, 1,2,4,6-10.
-D, - дубликаты
Обрабатывайте ключевые слова, которые содержат повторяющиеся значения. Это полезно для некоторых очень
избыточные наборы ключевых слов.
-m, --множественные итерации=ИТЕРАЦИИ
Выполните несколько вариантов -i и -j ценностей и выбирайте наилучшие результаты. Этот
увеличивает время работы в ИТЕРАЦИИ, но делает хорошую работу, сводя к минимуму
размер сгенерированной таблицы.
-i, --initial-ассо=N
Задайте начальное значение для массива связанных значений. По умолчанию 0. Установка этого
значение больше помогает раздувать размер итоговой таблицы.
-j, --Прыжок=ПОВЫШЕНИЕ СТОИМОСТИ
Влияет на "значение прыжка", то есть на то, насколько далеко продвинуться значение связанного символа.
при столкновениях. Должно быть нечетное число, по умолчанию - 5.
-n, --no-strlen
Не включайте длину ключевого слова при вычислении хеш-функции.
-r, --случайный
Использует случайность для инициализации связанной таблицы значений.
-s, - размер-кратный=N
Влияет на размер сгенерированной хеш-таблицы. Числовой аргумент N указывает, "как
во много раз больше или меньше "соответствующий диапазон значений должен быть в зависимости от
к количеству ключей, например, значение 3 означает "разрешить максимальное связанное значение
быть примерно в 3 раза больше, чем количество клавиш ввода ". И наоборот, значение
1/3 означает «сделать максимальное связанное значение примерно в 3 раза меньше, чем число.
клавиш ввода ". Чем больше таблица, тем меньше время, необходимое для
неудачный поиск за счет лишнего табличного пространства. Значение по умолчанию - 1.
Информативный вывод:
-h, --Помогите
Распечатайте это сообщение.
-v, --версия
Выведите номер версии gperf.
-d, --отлаживать
Включает параметр отладки (выводит подробный вывод стандартной ошибки).
Используйте gperf в Интернете с помощью сервисов onworks.net