Size: a a a

IT KPI C/C++ ХВ (не UB)

2021 April 28

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
но что если мне надо точно то же самое, но ключ - не 100% то же значение, а просто.. маска
источник

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
ну вот, к примеру, префикс
источник

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
т.е. пары
key1 -> value1
key2 -> value2

и хочу получать value1 для любого ключа типа
key1
key12312312
key1someword
источник

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
и вот как бы это сделать чуть умнее чем тупо перебор?
источник

V

Volodymyr Barannik in IT KPI C/C++ ХВ (не UB)
первая мысль — префиксное дерево
источник

V

Volodymyr Barannik in IT KPI C/C++ ХВ (не UB)
но это только для префиксов работать будет
источник

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
меня устраивает именно для префиксов
источник

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
этого хватит
источник

V

Volodymyr Barannik in IT KPI C/C++ ХВ (не UB)
если нужно прям вайлдакарды, то permuterm index, k-grams
источник

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
я так понимаю и то и другое писать самому с нуля?
источник

KS

Kostia Storozhuk in IT KPI C/C++ ХВ (не UB)
если я правильно понял - это же чистый бор, нет? (а, это и есть преф дерево)
источник

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
stl\boost поможет слабо?
источник

V

Volodymyr Barannik in IT KPI C/C++ ХВ (не UB)
хз, я не искал готовые решения для этих штук
источник

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
что это такое не знаю
источник

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
а про префиксное дерево вот подумываю, да
источник

V

Volodymyr Barannik in IT KPI C/C++ ХВ (не UB)
но тут префиксное дерево это лишний геморой. Либо данные дублироваться будут, либо еще один indirection level (ноды будут хранить указатели на value))

Можно попробовать сначала привести ключ к нормализированному виду (пример: key12312312 -> key1, key1someword -> key1), а потом с нормализированным ключем лезть в мапу. Но это хардкодить надо, что не найс
источник

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
хардкод не пройдет
источник

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
ключи задаются юзером в ui
источник

AP

Alexander Pavlyuchuk in IT KPI C/C++ ХВ (не UB)
как и маски
источник

V

Volodymyr Barannik in IT KPI C/C++ ХВ (не UB)
тогда префиксное дерево как по мне. Интересно что другие скажут, может есть более клёвое решение
источник