# `tree` Interface

A concrete basic tree-based associative container.

Defined in: `assoc_container.hpp`

## Template Parameters

Parameter | Description | Default Value

    typename Key

Key type.

-

    typename Mapped

Mapped type.

-

    class Cmp_Fn

Comparison functor.

    std::less<Key>

    class Tag

Mapped-structure tag.

`rb_tree_tag`

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

Node updater type.

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

`null_tree_node_update`

    class Allocator

Allocator type.

    std::allocator<char>

## Base Classes

Class | Derivation Type

    basic_tree

public

## Public Types and Constants

### Policy Definitions

Type | Definition | Description

    cmp_fn

    Cmp_Fn

Comparison functor 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

      tree
      ()

Default constructor.

      tree
      (const cmp_fn &r_cmp_fn)

Constructor taking some policy objects. `r_cmp_fn` will be copied by the `Cmp_Fn` object of the container object.

    template<
        class It>
      tree
      (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>
      tree
      (It first_it,
        It last_it,
        const cmp_fn &r_cmp_fn)

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. `r_cmp_fn` will be copied by the `cmp_fn` object of the container object.

      tree
      (const tree &other)

Copy constructor.

    virtual
      ~tree
      ()

Destructor.

    tree &
      operator=
      (const tree &other)

Assignment operator.

    void
      swap
      (tree &other)

Swaps content.

### Policy Access Methods

Method | Description

    cmp_fn &
      get_cmp_fn
      ()

Access to the `cmp_fn` object.

    const cmp_fn &
      get_cmp_fn
      () const

Const access to the `cmp_fn` object.

### Node-Iteration Methods

Method | Description

    node_iterator
      node_begin
      ()

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

    const_node_iterator
      node_begin
      () const

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

    node_iterator
      node_end
      ()

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

    const_node_iterator
      node_end
      () const

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