# `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.