mdds
|
Public Types | |
using | value_type = mdds::detail::ref_pair<typename std::add_const<key_type>::type, trie_value_type> |
using | pointer = value_type* |
using | reference = value_type& |
using | difference_type = std::ptrdiff_t |
using | iterator_category = std::bidirectional_iterator_tag |
Public Member Functions | |
iterator_base (node_stack_type &&node_stack, key_buffer_type &&buf, iterator_type type) | |
bool | operator== (const iterator_base &other) const |
bool | operator!= (const iterator_base &other) const |
value_type | operator* () |
value_type | operator-> () |
iterator_base & | operator++ () |
iterator_base | operator++ (int) |
iterator_base & | operator-- () |
iterator_base | operator-- (int) |
Protected Types | |
using | trie_type = _TrieType |
using | _is_const = std::bool_constant<IsConst> |
using | node_stack_type = typename get_node_stack_type<trie_type, _is_const>::type |
using | trie_node_type = mdds::detail::const_t<typename trie_type::trie_node, IsConst> |
using | trie_node_child_pos_type |
using | key_traits_type = typename trie_type::key_traits_type |
using | key_type = typename key_traits_type::key_type |
using | key_buffer_type = typename key_traits_type::key_buffer_type |
using | trie_value_type = typename mdds::detail::const_or_not<typename trie_type::value_type, _is_const>::type |
Protected Member Functions | |
iterator_base (empty_iterator_type) | |
Static Protected Member Functions | |
static trie_node_type * | push_child_node_to_stack (node_stack_type &node_stack, key_buffer_type &buf, trie_node_child_pos_type &child_pos) |
static trie_node_type * | descend_to_previus_leaf_node (node_stack_type &node_stack, key_buffer_type &buf) |
|
protected |
|
inlinestaticprotected |
From the current node, move to its previous child node and descend all the way to the leaf node.