# `trie_prefix_search_node_update` Interface

A node updater that allows tries to be searched for the range of values that match a certain prefix.

Defined in: `trie_policy.hpp`

## Template Parameters

Parameter | Description | Default Value

    class Const_Node_Iterator

Const node iterator type.

-

    class Node_Iterator

Node iterator type.

-

    class E_Access_Traits

Comparison functor.

-

    class Allocator

Allocator type.

-

## Public Types and Constants

### Key-Type Definitions

Type | Definition | Description

    key_type

    The instantiating container's key type.

Key type.

    const_key_reference

    The instantiating container's const key reference type.

Const key reference.

### Policy Definitions

Type | Definition | Description

    e_access_traits

    E_Access_Traits

Element access traits.

    const_e_iterator

    typename e_access_traits::const_iterator

Const element iterator.

    allocator

    Allocator

`Allocator` type.

### General Definitions

Type | Definition | Description

    size_type

    typename allocator::size_type

Size type.

### Metadata-Type Definitions

Type | Definition | Description

    metadata_type

    __gnu_pbds::detail::null_node_metadata

Metadata type.

### Iterator Definitions

Type | Definition | Description

    const_node_iterator

    Const_Node_Iterator

Const node iterator type.

    node_iterator

    Node_Iterator

Node iterator type.

    const_iterator

    typename const_node_iterator::value_type

Const iterator type.

    iterator

    typename node_iterator::value_type

Iterator type.

## Public Methods

### Find Methods

Method | Description

    std::pair<
        const_iterator,
        const_iterator>
      prefix_range
      (const_key_reference r_key) const

Finds the `const` `iterator` range corresponding to all values whose prefixes match `r_key`.

    std::pair<
        iterator,
        iterator>
      prefix_range
      (const_key_reference r_key)

Finds the `iterator` range corresponding to all values whose prefixes match `r_key`.

    std::pair<
        const_iterator,
        const_iterator>
      prefix_range
      (const_e_iterator b,
        const_e_iterator e) const

Finds the `const` `iterator` range corresponding to all values whose prefixes match [b, `e`).

    std::pair<
        iterator,
        iterator>
      prefix_range
      (const_e_iterator b,
        const_e_iterator e)

Finds the `iterator` range corresponding to all values whose prefixes match [b, `e`).

## Protected Methods

### Operators

Method | Description

    inline void
      operator()
      (node_iterator node_it,
        const_node_iterator end_nd_it) const

Called to update a node's metadata.

## Private Methods

### Overrides

Method | Description

    virtual const_iterator
      end
      () const = 0

Returns the `const` `iterator` associated with the just-after last element.

    virtual iterator
      end
      () = 0

Returns the `iterator` associated with the just-after last element.

    virtual const_node_iterator
      node_begin
      () const = 0

Returns the `const_node_iterator` associated with the trie's root node.

    virtual node_iterator
      node_begin
      () = 0

Returns the `node_iterator` associated with the trie's root node.

    virtual const_node_iterator
      node_end
      () const = 0

Returns the `const_node_iterator` associated with a just-after leaf node.

    virtual node_iterator
      node_end
      () = 0

Returns the `node_iterator` associated with a just-after leaf node.

    virtual const e_access_traits &
      get_e_access_traits
      () const = 0

Access to the cmp_fn object.