# `basic_hash_assoc_cntnr` Interface

A basic hash-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.
6. Protected Methods:
   1. Resize methods.

## Template parameters.

Parameter | Description | Default Value
    Key
| Key type. | -
    Data
| Data type. | -
    Hash_Fn
| Hash functor. | -
    Eq_Fn
| Equivalence functor. | -
    Resize_Policy
| Resize policy. | -
    Store_Hash
| Indicates whether the hash value will be stored along with each key. | -
    DS_Tag,
| Data-structure tag. | -
    Allocator
| Allocator type. | -

## Base classes.

Class | Derivation Type
    Resize_Policy
| public
    Hash_Fn
| public

    Depending on Data:	 null_data_type - basic_assoc_cntnr "set" specialization 	 compound_data_type<Container> - basic_assoc_cntnr "multimap" specialization 	 Other - basic_assoc_cntnr "map" specialization
| public

## Policy definitions.

Type | Definition | Description
    hash_fn
    Hash_Fn
| Hash functor type.
    eq_fn
    Eq_Fn
| Equivalence functor type.
    resize_policy
    Resize_Policy
| Resize policy type.
    store_hash
    Store_Hash
| Indicates whether a hash value is stored with each entry.

## Constructors, destructor, and related.

Method | Description
    virtual
      ~basic_hash_assoc_cntnr
      ()
| Destructor.

## Policy access methods.

Method | Description
    hash_fn &
      get_hash_fn
      ()
| Access to the `hash_fn` object.
    const hash_fn &
      get_hash_fn
      () const
| Const access to the `hash_fn` object.
    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.
    Resize_Policy &
      get_resize_policy
      ()
| Access to the `resize_policy` object.
    const resize_policy &
      get_resize_policy
      () const
| Const access to the `resize_policy` object.

## Resize methods.

Method | Description
    virtual void
      do_resize
      (size_type new_size)
| Resizes the container object to `new_size`.