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