trie из libstdc++ с бинарными ключами?
А то даже гугл не помогает что-то...
Ну то есть со строками-то всё понятно, делай так:
typedef trie<string, null_type, trie_string_access_traits<>, pat_trie_tag, trie_prefix_search_node_update> pref_trie;
и вперёд.
А как для бинарных данных (да тех же uint32_t) - осознать не получается.
Для rd-tree всё понятно, делай так::
typedef tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> ordered_set;
Но если вместо rb_tree_tag указать pat_trie_tag ( https://gcc.gnu.org/onlinedocs/libstdc++/ext/pb_ds/trie_based_containers.html ), то less<int> уже не подходит, надо какой-то аналог trie_string_access_traits<>, которого в libstd++ нет.
Ну или ещё чего не хватает - не может он темплейт инстанцировать.
Подскажите, куда копать?
Ответ нашелся в неожиданном месте: https://github.com/sikol/patricia Там на примере IPv6-адресов как раз префиксный поиск: https://github.com/sikol/patricia/blob/master/tests/ip_prefix.cxx#L111
Обсуждают сегодня