# `lu_assoc_cntnr` Interface

A list-update based associative container.

1. `assoc_cntnr.hpp`
2. Template parameters.
3. Base classes.
4. Public Types and Constants:
   1. Policy definitions.
5. Public Methods:
   1. Constructors, destructor, and related.
   2. Policy access methods.

## Template parameters.

Parameter | Description | Default Value

    Key

Key type.

-

    Data

Data type.

-

    Eq_Fn

Equivalence functor.

    std::equal_to<Key>

    Update_Policy

Update policy (determines when an element will be moved to the front of the list.

`move_to_front_update_policy`

    Allocator

Allocator type.

    std::allocator<char>

## Base classes.

Class | Derivation Type

    Update_Policy

public

## Policy definitions.

Type | Definition | Description

    eq_fn

    Eq_Fn

Equivalence functor type.

    allocator

    Allocator

Allocator type.

    update_policy

    Update_Policy

List update policy type.

## Constructors, destructor, and related.

Method | Description

      lu_assoc_cntnr
      ()

Default constructor.

      lu_assoc_cntnr
      (const Eq_Fn &r_eq_fn)

Constructor taking some policy objects. `r_eq_fn` will be copied by the `Eq_Fn` object of the container object.

      lu_assoc_cntnr
      (const Eq_Fn &r_eq_fn,
        const Update_Policy &r_update_policy)

Constructor taking some policy objects. `r_eq_fn` will be copied by the `Eq_Fn` object of the container object, and `r_update_policy` will be copied by the `Update_Policy` object of the container object.

    template<class It>
      lu_assoc_cntnr
      (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>
      lu_assoc_cntnr
      (It first_it, It last_it,
        const Eq_Fn &r_eq_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.

    template<class It>
      lu_assoc_cntnr
      (It first_it, It last_it,
        const Eq_Fn &r_eq_fn,
        const Update_Policy &r_update_policy)

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.

      lu_assoc_cntnr
      (const lu_assoc_cntnr &r_other)

Copy constructor.

    virtual
      ~lu_assoc_cntnr
      ()

Destructor.

    lu_assoc_cntnr &
      operator=
      (const lu_assoc_cntnr &r_other)

Assignment operator.

    void
      swap
      (lu_assoc_cntnr &r_other)

Swaps content.

## Policy access methods.

Method | Description

    eq_fn &
      get_eq_fn
      ()

Access to the `eq_fn` object.

    const eq_fn &
      get_eq_fn
      () const

Const access to the `eq_fn` object.

    update_policy &
      get_update_policy
      ()

Access to the `update_policy` object.

    const update_policy &
      get_update_policy
      () const

Const access to the `update_policy` object.