A node updator that allows tries to be searched for the range of values that match a certain prefix. More...
#include <trie_policy.hpp>
Public Types | |
typedef access_traits::const_iterator | a_const_iterator |
Const element iterator. More... | |
typedef _ATraits | access_traits |
Element access traits. More... | |
typedef _Alloc | allocator_type |
_Alloc type. More... | |
typedef node_const_iterator::value_type | const_iterator |
typedef node_iterator::value_type | iterator |
typedef base_type::key_const_reference | key_const_reference |
typedef base_type::key_type | key_type |
typedef null_type | metadata_type |
typedef Node_CItr | node_const_iterator |
typedef Node_Itr | node_iterator |
typedef allocator_type::size_type | size_type |
Size type. More... | |
Public Member Functions | |
std::pair< const_iterator, const_iterator > | prefix_range (key_const_reference) const |
Finds the const iterator range corresponding to all values whose prefixes match r_key. More... | |
std::pair< iterator, iterator > | prefix_range (key_const_reference) |
Finds the iterator range corresponding to all values whose prefixes match r_key. More... | |
std::pair< const_iterator, const_iterator > | prefix_range (a_const_iterator, a_const_iterator) const |
Finds the const iterator range corresponding to all values whose prefixes match [b, e). More... | |
std::pair< iterator, iterator > | prefix_range (a_const_iterator, a_const_iterator) |
Finds the iterator range corresponding to all values whose prefixes match [b, e). More... | |
Protected Member Functions | |
void | operator() (node_iterator node_it, node_const_iterator end_nd_it) const |
Called to update a node's metadata. More... | |
Private Types | |
typedef detail::trie_policy_base< Node_CItr, Node_Itr, _ATraits, _Alloc > | base_type |
typedef rebind_v::const_pointer | const_pointer |
typedef rebind_v::const_reference | const_reference |
typedef Node_Itr::value_type | it_type |
typedef remove_const< key_type >::type | rckey_type |
typedef remove_const< value_type >::type | rcvalue_type |
typedef _Alloc::template rebind< rckey_type >::other | rebind_k |
typedef _Alloc::template rebind< rcvalue_type >::other | rebind_v |
typedef rebind_v::reference | reference |
typedef std::iterator_traits< it_type >::value_type | value_type |
Private Member Functions | |
virtual const_iterator | end () const =0 |
Returns the const iterator associated with the just-after last element. More... | |
virtual iterator | end ()=0 |
Returns the iterator associated with the just-after last element. More... | |
it_type | end_iterator () const |
virtual const access_traits & | get_access_traits () const =0 |
Access to the cmp_fn object. More... | |
node_iterator | next_child (node_iterator, a_const_iterator, a_const_iterator, node_iterator, const access_traits &) |
virtual node_const_iterator | node_begin () const =0 |
Returns the node_const_iterator associated with the trie's root node. More... | |
virtual node_iterator | node_begin ()=0 |
Returns the node_iterator associated with the trie's root node. More... | |
virtual node_const_iterator | node_end () const =0 |
Returns the node_const_iterator associated with a just-after leaf node. More... | |
virtual node_iterator | node_end ()=0 |
Returns the node_iterator associated with a just-after leaf node. More... | |
Static Private Member Functions | |
static size_type | common_prefix_len (node_iterator, e_const_iterator, e_const_iterator, const access_traits &) |
static key_const_reference | extract_key (const_reference r_val) |
static iterator | leftmost_it (node_iterator) |
static bool | less (e_const_iterator, e_const_iterator, e_const_iterator, e_const_iterator, const access_traits &) |
static iterator | rightmost_it (node_iterator) |
A node updator that allows tries to be searched for the range of values that match a certain prefix.
typedef access_traits::const_iterator __gnu_pbds::trie_prefix_search_node_update< Node_CItr, Node_Itr, _ATraits, _Alloc >::a_const_iterator |
Const element iterator.
typedef _ATraits __gnu_pbds::trie_prefix_search_node_update< Node_CItr, Node_Itr, _ATraits, _Alloc >::access_traits |
Element access traits.
typedef _Alloc __gnu_pbds::trie_prefix_search_node_update< Node_CItr, Node_Itr, _ATraits, _Alloc >::allocator_type |
_Alloc type.
|
private |
typedef node_const_iterator::value_type __gnu_pbds::trie_prefix_search_node_update< Node_CItr, Node_Itr, _ATraits, _Alloc >::const_iterator |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
typedef node_iterator::value_type __gnu_pbds::trie_prefix_search_node_update< Node_CItr, Node_Itr, _ATraits, _Alloc >::iterator |
typedef base_type::key_const_reference __gnu_pbds::trie_prefix_search_node_update< Node_CItr, Node_Itr, _ATraits, _Alloc >::key_const_reference |
typedef base_type::key_type __gnu_pbds::trie_prefix_search_node_update< Node_CItr, Node_Itr, _ATraits, _Alloc >::key_type |
typedef null_type __gnu_pbds::trie_prefix_search_node_update< Node_CItr, Node_Itr, _ATraits, _Alloc >::metadata_type |
typedef Node_CItr __gnu_pbds::trie_prefix_search_node_update< Node_CItr, Node_Itr, _ATraits, _Alloc >::node_const_iterator |
typedef Node_Itr __gnu_pbds::trie_prefix_search_node_update< Node_CItr, Node_Itr, _ATraits, _Alloc >::node_iterator |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
typedef allocator_type::size_type __gnu_pbds::trie_prefix_search_node_update< Node_CItr, Node_Itr, _ATraits, _Alloc >::size_type |
Size type.
|
protectedinherited |
|
staticprotectedinherited |
|
privatepure virtual |
Returns the const iterator associated with the just-after last element.
Implements __gnu_pbds::detail::trie_policy_base< Node_CItr, Node_Itr, _ATraits, _Alloc >.
|
privatepure virtual |
Returns the iterator associated with the just-after last element.
Implements __gnu_pbds::detail::trie_policy_base< Node_CItr, Node_Itr, _ATraits, _Alloc >.
|
inlineprotectedinherited |
References __gnu_pbds::detail::branch_policy< Node_CItr, Node_Itr, _Alloc >::end().
|
inlinestaticprotectedinherited |
|
privatepure virtual |
Access to the cmp_fn object.
Implements __gnu_pbds::detail::trie_policy_base< Node_CItr, Node_Itr, _ATraits, _Alloc >.
|
staticprotectedinherited |
|
staticprotectedinherited |
|
private |
|
privatepure virtual |
Returns the node_const_iterator associated with the trie's root node.
Implements __gnu_pbds::detail::trie_policy_base< Node_CItr, Node_Itr, _ATraits, _Alloc >.
|
privatepure virtual |
Returns the node_iterator associated with the trie's root node.
Implements __gnu_pbds::detail::trie_policy_base< Node_CItr, Node_Itr, _ATraits, _Alloc >.
|
privatepure virtual |
Returns the node_const_iterator associated with a just-after leaf node.
Implements __gnu_pbds::detail::trie_policy_base< Node_CItr, Node_Itr, _ATraits, _Alloc >.
|
privatepure virtual |
Returns the node_iterator associated with a just-after leaf node.
Implements __gnu_pbds::detail::trie_policy_base< Node_CItr, Node_Itr, _ATraits, _Alloc >.
|
inlineprotected |
Called to update a node's metadata.
std::pair<const_iterator, const_iterator> __gnu_pbds::trie_prefix_search_node_update< Node_CItr, Node_Itr, _ATraits, _Alloc >::prefix_range | ( | key_const_reference | ) | const |
Finds the const iterator range corresponding to all values whose prefixes match r_key.
std::pair<iterator, iterator> __gnu_pbds::trie_prefix_search_node_update< Node_CItr, Node_Itr, _ATraits, _Alloc >::prefix_range | ( | key_const_reference | ) |
Finds the iterator range corresponding to all values whose prefixes match r_key.
std::pair<const_iterator, const_iterator> __gnu_pbds::trie_prefix_search_node_update< Node_CItr, Node_Itr, _ATraits, _Alloc >::prefix_range | ( | a_const_iterator | , |
a_const_iterator | |||
) | const |
Finds the const iterator range corresponding to all values whose prefixes match [b, e).
std::pair<iterator, iterator> __gnu_pbds::trie_prefix_search_node_update< Node_CItr, Node_Itr, _ATraits, _Alloc >::prefix_range | ( | a_const_iterator | , |
a_const_iterator | |||
) |
Finds the iterator range corresponding to all values whose prefixes match [b, e).
|
staticprotectedinherited |