# `trie` Interface

A concrete basic trie-based associative container.

Defined in: `assoc_container.hpp`

## Template Parameters

Parameter | Description | Default Value

    typename Key

Key type.

-

    typename Mapped

Mapped type.

-

    class E_Access_Traits

Element-access traits.

-

    class Tag

Data-structure tag.

`pat_trie_tag`

    template<
      typename Const_Node_Iterator,
      typename Node_Iterator,
      class E_Access_Traits_,
      typename Allocator_>
    class Node_Update

Node updater type.

Design::Tree-Based Containers::Node Invariants explains this concept.

`null_trie_node_update`

    class Allocator

Allocator type.

    std::allocator<char>

## Public Types and Constants

### Policy Definitions

Type | Definition | Description

    e_access_traits

    E_Access_Traits

Element access traits type.

### Iterator Definitions

Type | Definition | Description

    const_node_iterator

    const_node_iterator

Const node iterator.

    node_iterator

    node_iterator

Node iterator.

## Public Methods

### Constructors, Destructor, and Related

Method | Description

      trie
      ()

Default constructor.

      trie
      (const E_Access_Traits &r_e_access_traits)

Constructor taking some policy objects. `r_e_access_traits` will be copied by the `E_Access_Traits` object of the container object.

    template<
        class It>
      trie
      (It first_it,
        It last_it)

Constructor taking iterators to a range of value_types. The value_types between `first_it` and `last_it` will be inserted into the container object.

    template<
        class It>
      trie
      (It first_it,
        It last_it,
        const E_Access_Traits &r_e_access_traits)

Constructor taking iterators to a range of value_types and some policy objects. The value_types between `first_it` and `last_it` will be inserted into the container object.

      trie
      (const trie &other)

Copy constructor.

    virtual
      ~trie
      ()

Destructor.

    trie &
      operator=
      (const trie &other)

Assignment operator.

    void
      swap
      (trie &other)

Swaps content.

### Policy Access Methods

Method | Description

    e_access_traits &
      get_e_access_traits
      ()

Access to the comb_hash_fn object.

    e_access_traits &
      get_e_access_traits
      () const

Const access to the comb_hash_fn object.

### Node-Iteration Methods

Method | Description

    node_iterator
      node_begin
      ()

Returns a `node_iterator` corresponding to the node at the root of the trie.

    const_node_iterator
      node_begin
      () const

Returns a `const_node_iterator` corresponding to the node at the root of the trie.

    node_iterator
      node_end
      ()

Returns a `node_iterator` corresponding to a node just after a leaf of the trie.

    const_node_iterator
      node_end
      () const

Returns a `const_node_iterator` corresponding to a node just after a leaf of the trie.