Loading...
Searching...
No Matches
unordered_multimap

## Classes

class | etl::unordered_multimap_exception
class | etl::unordered_multimap_full
class | etl::unordered_multimap_out_of_range
class | etl::unordered_multimap_iterator
class | etl::iunordered_multimap< TKey, T, THash, TKeyEqual >

## Functions

template<typename TKey, typename T, typename THash, typename TKeyEqual>
bool | etl::operator== (const etl::iunordered_multimap< TKey, T, THash, TKeyEqual > &lhs, const etl::iunordered_multimap< TKey, T, THash, TKeyEqual > &rhs)
template<typename TKey, typename T, typename THash, typename TKeyEqual>
bool | etl::operator!= (const etl::iunordered_multimap< TKey, T, THash, TKeyEqual > &lhs, const etl::iunordered_multimap< TKey, T, THash, TKeyEqual > &rhs)

## Detailed Description

A unordered_multimap with the capacity defined at compile time.

## Class Documentation

## etl::unordered_multimap_exception

class etl::unordered_multimap_exception

Exception for the unordered_multimap.

### Public Member Functions

| unordered_multimap_exception (string_type reason_, string_type file_name_, numeric_type line_number_)
Public Member Functions inherited from etl::exception
ETL_EXCEPTION_CONSTEXPR | exception (string_type reason_, string_type, numeric_type)
| Constructor.
ETL_EXCEPTION_CONSTEXPR string_type | what () const ETL_NOEXCEPT ETL_EXCEPTION_OVERRIDE
ETL_EXCEPTION_CONSTEXPR string_type | file_name () const
ETL_EXCEPTION_CONSTEXPR numeric_type | line_number () const

## Additional Inherited Members

Public Types inherited from etl::exception
typedef const char * | string_type
typedef int | numeric_type

## etl::unordered_multimap_full

class etl::unordered_multimap_full

Full exception for the unordered_multimap.

### Public Member Functions

| unordered_multimap_full (string_type file_name_, numeric_type line_number_)
Public Member Functions inherited from etl::unordered_multimap_exception
| unordered_multimap_exception (string_type reason_, string_type file_name_, numeric_type line_number_)
Public Member Functions inherited from etl::exception
ETL_EXCEPTION_CONSTEXPR | exception (string_type reason_, string_type, numeric_type)
| Constructor.
ETL_EXCEPTION_CONSTEXPR string_type | what () const ETL_NOEXCEPT ETL_EXCEPTION_OVERRIDE
ETL_EXCEPTION_CONSTEXPR string_type | file_name () const
ETL_EXCEPTION_CONSTEXPR numeric_type | line_number () const

## Additional Inherited Members

Public Types inherited from etl::exception
typedef const char * | string_type
typedef int | numeric_type

## etl::unordered_multimap_out_of_range

class etl::unordered_multimap_out_of_range

Out of range exception for the unordered_multimap.

### Public Member Functions

| unordered_multimap_out_of_range (string_type file_name_, numeric_type line_number_)
Public Member Functions inherited from etl::unordered_multimap_exception
| unordered_multimap_exception (string_type reason_, string_type file_name_, numeric_type line_number_)
Public Member Functions inherited from etl::exception
ETL_EXCEPTION_CONSTEXPR | exception (string_type reason_, string_type, numeric_type)
| Constructor.
ETL_EXCEPTION_CONSTEXPR string_type | what () const ETL_NOEXCEPT ETL_EXCEPTION_OVERRIDE
ETL_EXCEPTION_CONSTEXPR string_type | file_name () const
ETL_EXCEPTION_CONSTEXPR numeric_type | line_number () const

## Additional Inherited Members

Public Types inherited from etl::exception
typedef const char * | string_type
typedef int | numeric_type

## etl::unordered_multimap_iterator

class etl::unordered_multimap_iterator

Iterator exception for the unordered_multimap.

### Public Member Functions

| unordered_multimap_iterator (string_type file_name_, numeric_type line_number_)
Public Member Functions inherited from etl::unordered_multimap_exception
| unordered_multimap_exception (string_type reason_, string_type file_name_, numeric_type line_number_)
Public Member Functions inherited from etl::exception
ETL_EXCEPTION_CONSTEXPR | exception (string_type reason_, string_type, numeric_type)
| Constructor.
ETL_EXCEPTION_CONSTEXPR string_type | what () const ETL_NOEXCEPT ETL_EXCEPTION_OVERRIDE
ETL_EXCEPTION_CONSTEXPR string_type | file_name () const
ETL_EXCEPTION_CONSTEXPR numeric_type | line_number () const

## Additional Inherited Members

Public Types inherited from etl::exception
typedef const char * | string_type
typedef int | numeric_type

## etl::iunordered_multimap

class etl::iunordered_multimap

template<typename TKey, typename T, typename THash = etl::hash<TKey>, typename TKeyEqual = etl::equal_to<TKey>>
class etl::iunordered_multimap< TKey, T, THash, TKeyEqual >

The base class for specifically sized unordered_multimap. Can be used as a reference type for all unordered_multimap containing a specific type.

### Public Types

typedef ETL_OR_STD::pair< const TKey, T > | value_type
typedef TKey | key_type
typedef T | mapped_type
typedef THash | hasher
typedef TKeyEqual | key_equal
typedef value_type & | reference
typedef const value_type & | const_reference
typedef value_type * | pointer
typedef const value_type * | const_pointer
typedef size_t | size_type
typedef const key_type & | const_key_reference
typedef etl::forward_link< 0 > | link_t
typedef bucket_t::iterator | local_iterator
typedef bucket_t::const_iterator | const_local_iterator
typedef etl::iterator_traits< iterator >::difference_type | difference_type

### Public Member Functions

iterator | begin ()
const_iterator | begin () const
const_iterator | cbegin () const
local_iterator | begin (size_t i)
const_local_iterator | begin (size_t i) const
const_local_iterator | cbegin (size_t i) const
iterator | end ()
const_iterator | end () const
const_iterator | cend () const
local_iterator | end (size_t i)
const_local_iterator | end (size_t i) const
const_local_iterator | cend (size_t i) const
size_type | get_bucket_index (const_key_reference key) const
size_type | bucket_size (const_key_reference key) const
size_type | max_bucket_count () const
size_type | bucket_count () const
template<typename TIterator>
void | assign (TIterator first_, TIterator last_)
iterator | insert (const_reference key_value_pair)
iterator | insert (const_iterator, const_reference key_value_pair)
template<class TIterator>
void | insert (TIterator first_, TIterator last_)
iterator | emplace (const_reference key_value_pair)
| Emplaces a value to the unordered_multimap.
size_t | erase (const_key_reference key)
iterator | erase (const_iterator ielement)
iterator | erase (const_iterator first_, const_iterator last_)
void | clear ()
| Clears the unordered_multimap.
size_t | count (const_key_reference key) const
iterator | find (const_key_reference key)
const_iterator | find (const_key_reference key) const
ETL_OR_STD::pair< iterator, iterator > | equal_range (const_key_reference key)
ETL_OR_STD::pair< const_iterator, const_iterator > | equal_range (const_key_reference key) const
size_type | size () const
| Gets the size of the unordered_multimap.
size_type | max_size () const
| Gets the maximum possible size of the unordered_multimap.
size_type | capacity () const
| Gets the maximum possible size of the unordered_multimap.
bool | empty () const
| Checks to see if the unordered_multimap is empty.
bool | full () const
| Checks to see if the unordered_multimap is full.
size_t | available () const
float | load_factor () const
hasher | hash_function () const
key_equal | key_eq () const
iunordered_multimap & | operator= (const iunordered_multimap &rhs)
| Assignment operator.
bool | contains (const_key_reference key) const
| Check if the unordered_multimap contains the key.

### Protected Types

typedef etl::intrusive_forward_list< node_t, link_t > | bucket_t
typedef etl::ipool | pool_t

### Protected Member Functions

| iunordered_multimap (pool_t &node_pool_, bucket_t *pbuckets_, size_t number_of_buckets_, hasher key_hash_function_, key_equal key_equal_function_)
| Constructor.
void | initialise ()
| Initialise the unordered_multimap.
| ~iunordered_multimap ()
| Destructor.

### Friends

bool | operator== (const node_t &lhs, const node_t &rhs)
bool | operator!= (const node_t &lhs, const node_t &rhs)

#### Member Function Documentation

## assign()

template<typename TKey, typename T, typename THash = etl::hash<TKey>, typename TKeyEqual = etl::equal_to<TKey>>
template<typename TIterator>

void etl::iunordered_multimap< TKey, T, THash, TKeyEqual >::assign | ( | TIterator | first_,
|  | TIterator | last_ )

inline

Assigns values to the unordered_multimap. If asserts or exceptions are enabled, emits unordered_multimap_full if the unordered_multimap does not have enough free space. If asserts or exceptions are enabled, emits unordered_multimap_iterator if the iterators are reversed.

Parameters

  first | The iterator to the first element.
  last | The iterator to the last element + 1.

## available()

template<typename TKey, typename T, typename THash = etl::hash<TKey>, typename TKeyEqual = etl::equal_to<TKey>>

size_t etl::iunordered_multimap< TKey, T, THash, TKeyEqual >::available | ( |  | ) | const

inline

Returns the remaining capacity.

Returns
  The remaining capacity.

## begin() [1/4]

template<typename TKey, typename T, typename THash = etl::hash<TKey>, typename TKeyEqual = etl::equal_to<TKey>>

iterator etl::iunordered_multimap< TKey, T, THash, TKeyEqual >::begin | ( |  | ) |

inline

Returns an iterator to the beginning of the unordered_multimap.

Returns
  An iterator to the beginning of the unordered_multimap.

## begin() [2/4]

template<typename TKey, typename T, typename THash = etl::hash<TKey>, typename TKeyEqual = etl::equal_to<TKey>>

const_iterator etl::iunordered_multimap< TKey, T, THash, TKeyEqual >::begin | ( |  | ) | const

inline

Returns a const_iterator to the beginning of the unordered_multimap.

Returns
  A const iterator to the beginning of the unordered_multimap.

## begin() [3/4]

template<typename TKey, typename T, typename THash = etl::hash<TKey>, typename TKeyEqual = etl::equal_to<TKey>>

local_iterator etl::iunordered_multimap< TKey, T, THash, TKeyEqual >::begin | ( | size_t | i | ) |

inline

Returns an iterator to the beginning of the unordered_multimap bucket.

Returns
  An iterator to the beginning of the unordered_multimap bucket.

## begin() [4/4]

template<typename TKey, typename T, typename THash = etl::hash<TKey>, typename TKeyEqual = etl::equal_to<TKey>>

const_local_iterator etl::iunordered_multimap< TKey, T, THash, TKeyEqual >::begin | ( | size_t | i | ) | const

inline

Returns a const_iterator to the beginning of the unordered_multimap bucket.

Returns
  A const iterator to the beginning of the unordered_multimap bucket.

## bucket_count()

template<typename TKey, typename T, typename THash = etl::hash<TKey>, typename TKeyEqual = etl::equal_to<TKey>>

size_type etl::iunordered_multimap< TKey, T, THash, TKeyEqual >::bucket_count | ( |  | ) | const

inline

Returns the number of the buckets the container holds.

Returns
  The number of the buckets the container holds.

## bucket_size()

template<typename TKey, typename T, typename THash = etl::hash<TKey>, typename TKeyEqual = etl::equal_to<TKey>>

size_type etl::iunordered_multimap< TKey, T, THash, TKeyEqual >::bucket_size | ( | const_key_reference | key | ) | const

inline

Returns the size of the bucket key.

Returns
  The bucket size of the bucket key.

## cbegin() [1/2]

template<typename TKey, typename T, typename THash = etl::hash<TKey>, typename TKeyEqual = etl::equal_to<TKey>>

const_iterator etl::iunordered_multimap< TKey, T, THash, TKeyEqual >::cbegin | ( |  | ) | const

inline

Returns a const_iterator to the beginning of the unordered_multimap.

Returns
  A const iterator to the beginning of the unordered_multimap.

## cbegin() [2/2]

template<typename TKey, typename T, typename THash = etl::hash<TKey>, typename TKeyEqual = etl::equal_to<TKey>>

const_local_iterator etl::iunordered_multimap< TKey, T, THash, TKeyEqual >::cbegin | ( | size_t | i | ) | const

inline

Returns a const_iterator to the beginning of the unordered_multimap bucket.

Returns
  A const iterator to the beginning of the unordered_multimap bucket.

## cend() [1/2]

template<typename TKey, typename T, typename THash = etl::hash<TKey>, typename TKeyEqual = etl::equal_to<TKey>>

const_iterator etl::iunordered_multimap< TKey, T, THash, TKeyEqual >::cend | ( |  | ) | const

inline

Returns a const_iterator to the end of the unordered_multimap.

Returns
  A const iterator to the end of the unordered_multimap.

## cend() [2/2]

template<typename TKey, typename T, typename THash = etl::hash<TKey>, typename TKeyEqual = etl::equal_to<TKey>>

const_local_iterator etl::iunordered_multimap< TKey, T, THash, TKeyEqual >::cend | ( | size_t | i | ) | const

inline

Returns a const_iterator to the end of the unordered_multimap bucket.

Returns
  A const iterator to the end of the unordered_multimap bucket.

## count()

template<typename TKey, typename T, typename THash = etl::hash<TKey>, typename TKeyEqual = etl::equal_to<TKey>>

size_t etl::iunordered_multimap< TKey, T, THash, TKeyEqual >::count | ( | const_key_reference | key | ) | const

inline

Counts an element.

Parameters

  key | The key to search for.

Returns
  1 if the key exists, otherwise 0.

## end() [1/4]

template<typename TKey, typename T, typename THash = etl::hash<TKey>, typename TKeyEqual = etl::equal_to<TKey>>

iterator etl::iunordered_multimap< TKey, T, THash, TKeyEqual >::end | ( |  | ) |

inline

Returns an iterator to the end of the unordered_multimap.

Returns
  An iterator to the end of the unordered_multimap.

## end() [2/4]

template<typename TKey, typename T, typename THash = etl::hash<TKey>, typename TKeyEqual = etl::equal_to<TKey>>

const_iterator etl::iunordered_multimap< TKey, T, THash, TKeyEqual >::end | ( |  | ) | const

inline

Returns a const_iterator to the end of the unordered_multimap.

Returns
  A const iterator to the end of the unordered_multimap.

## end() [3/4]

template<typename TKey, typename T, typename THash = etl::hash<TKey>, typename TKeyEqual = etl::equal_to<TKey>>

local_iterator etl::iunordered_multimap< TKey, T, THash, TKeyEqual >::end | ( | size_t | i | ) |

inline

Returns an iterator to the end of the unordered_multimap bucket.

Returns
  An iterator to the end of the unordered_multimap bucket.

## end() [4/4]

template<typename TKey, typename T, typename THash = etl::hash<TKey>, typename TKeyEqual = etl::equal_to<TKey>>

const_local_iterator etl::iunordered_multimap< TKey, T, THash, TKeyEqual >::end | ( | size_t | i | ) | const

inline

Returns a const_iterator to the end of the unordered_multimap bucket.

Returns
  A const iterator to the end of the unordered_multimap bucket.

## equal_range() [1/2]

template<typename TKey, typename T, typename THash = etl::hash<TKey>, typename TKeyEqual = etl::equal_to<TKey>>

ETL_OR_STD::pair< iterator, iterator > etl::iunordered_multimap< TKey, T, THash, TKeyEqual >::equal_range | ( | const_key_reference | key | ) |

inline

Returns a range containing all elements with key key in the container. The range is defined by two iterators, the first pointing to the first element of the wanted range and the second pointing past the last element of the range.

Parameters

  key | The key to search for.

Returns
  An iterator pair to the range of elements if the key exists, otherwise end().

## equal_range() [2/2]

template<typename TKey, typename T, typename THash = etl::hash<TKey>, typename TKeyEqual = etl::equal_to<TKey>>

ETL_OR_STD::pair< const_iterator, const_iterator > etl::iunordered_multimap< TKey, T, THash, TKeyEqual >::equal_range | ( | const_key_reference | key | ) | const

inline

Returns a range containing all elements with key key in the container. The range is defined by two iterators, the first pointing to the first element of the wanted range and the second pointing past the last element of the range.

Parameters

  key | The key to search for.

Returns
  A const iterator pair to the range of elements if the key exists, otherwise end().

## erase() [1/3]

template<typename TKey, typename T, typename THash = etl::hash<TKey>, typename TKeyEqual = etl::equal_to<TKey>>

iterator etl::iunordered_multimap< TKey, T, THash, TKeyEqual >::erase | ( | const_iterator | first_,
|  | const_iterator | last_ )

inline

Erases a range of elements. The range includes all the elements between first and last, including the element pointed by first, but not the one pointed to by last.

Parameters

  first | Iterator to the first element.
  last | Iterator to the last element.

## erase() [2/3]

template<typename TKey, typename T, typename THash = etl::hash<TKey>, typename TKeyEqual = etl::equal_to<TKey>>

iterator etl::iunordered_multimap< TKey, T, THash, TKeyEqual >::erase | ( | const_iterator | ielement | ) |

inline

Erases an element.

Parameters

  ielement | Iterator to the element.

## erase() [3/3]

template<typename TKey, typename T, typename THash = etl::hash<TKey>, typename TKeyEqual = etl::equal_to<TKey>>

size_t etl::iunordered_multimap< TKey, T, THash, TKeyEqual >::erase | ( | const_key_reference | key | ) |

inline

Erases an element.

Parameters

  key | The key to erase.

Returns
  The number of elements erased.

## find() [1/2]

template<typename TKey, typename T, typename THash = etl::hash<TKey>, typename TKeyEqual = etl::equal_to<TKey>>

iterator etl::iunordered_multimap< TKey, T, THash, TKeyEqual >::find | ( | const_key_reference | key | ) |

inline

Finds an element.

Parameters

  key | The key to search for.

Returns
  An iterator to the element if the key exists, otherwise end().

## find() [2/2]

template<typename TKey, typename T, typename THash = etl::hash<TKey>, typename TKeyEqual = etl::equal_to<TKey>>

const_iterator etl::iunordered_multimap< TKey, T, THash, TKeyEqual >::find | ( | const_key_reference | key | ) | const

inline

Finds an element.

Parameters

  key | The key to search for.

Returns
  An iterator to the element if the key exists, otherwise end().

## get_bucket_index()

template<typename TKey, typename T, typename THash = etl::hash<TKey>, typename TKeyEqual = etl::equal_to<TKey>>

size_type etl::iunordered_multimap< TKey, T, THash, TKeyEqual >::get_bucket_index | ( | const_key_reference | key | ) | const

inline

Returns the bucket index for the key.

Returns
  The bucket index for the key.

## hash_function()

template<typename TKey, typename T, typename THash = etl::hash<TKey>, typename TKeyEqual = etl::equal_to<TKey>>

hasher etl::iunordered_multimap< TKey, T, THash, TKeyEqual >::hash_function | ( |  | ) | const

inline

Returns the function that hashes the keys.

Returns
  The function that hashes the keys..

## insert() [1/3]

template<typename TKey, typename T, typename THash = etl::hash<TKey>, typename TKeyEqual = etl::equal_to<TKey>>

iterator etl::iunordered_multimap< TKey, T, THash, TKeyEqual >::insert | ( | const_iterator | ,
|  | const_reference | key_value_pair )

inline

Inserts a value to the unordered_multimap. If asserts or exceptions are enabled, emits unordered_multimap_full if the unordered_multimap is already full.

Parameters

  position | The position to insert at.
  value | The value to insert.

## insert() [2/3]

template<typename TKey, typename T, typename THash = etl::hash<TKey>, typename TKeyEqual = etl::equal_to<TKey>>

iterator etl::iunordered_multimap< TKey, T, THash, TKeyEqual >::insert | ( | const_reference | key_value_pair | ) |

inline

Inserts a value to the unordered_multimap. If asserts or exceptions are enabled, emits unordered_multimap_full if the unordered_multimap is already full.

Parameters

  value | The value to insert.

## insert() [3/3]

template<typename TKey, typename T, typename THash = etl::hash<TKey>, typename TKeyEqual = etl::equal_to<TKey>>
template<class TIterator>

void etl::iunordered_multimap< TKey, T, THash, TKeyEqual >::insert | ( | TIterator | first_,
|  | TIterator | last_ )

inline

Inserts a range of values to the unordered_multimap. If asserts or exceptions are enabled, emits unordered_multimap_full if the unordered_multimap does not have enough free space.

Parameters

  position | The position to insert at.
  first | The first element to add.
  last | The last + 1 element to add.

## key_eq()

template<typename TKey, typename T, typename THash = etl::hash<TKey>, typename TKeyEqual = etl::equal_to<TKey>>

key_equal etl::iunordered_multimap< TKey, T, THash, TKeyEqual >::key_eq | ( |  | ) | const

inline

Returns the function that compares the keys.

Returns
  The function that compares the keys..

## load_factor()

template<typename TKey, typename T, typename THash = etl::hash<TKey>, typename TKeyEqual = etl::equal_to<TKey>>

float etl::iunordered_multimap< TKey, T, THash, TKeyEqual >::load_factor | ( |  | ) | const

inline

Returns the load factor = size / bucket_count.

Returns
  The load factor = size / bucket_count.

## max_bucket_count()

template<typename TKey, typename T, typename THash = etl::hash<TKey>, typename TKeyEqual = etl::equal_to<TKey>>

size_type etl::iunordered_multimap< TKey, T, THash, TKeyEqual >::max_bucket_count | ( |  | ) | const

inline

Returns the maximum number of the buckets the container can hold.

Returns
  The maximum number of the buckets the container can hold.

## Function Documentation

## operator!=()

template<typename TKey, typename T, typename THash, typename TKeyEqual>

bool etl::operator!= | ( | const etl::iunordered_multimap< TKey, T, THash, TKeyEqual > & | lhs,
|  | const etl::iunordered_multimap< TKey, T, THash, TKeyEqual > & | rhs )

Not equal operator.

Parameters

  lhs | Reference to the first unordered_multimap.
  rhs | Reference to the second unordered_multimap.

Returns
  true if the arrays are not equal, otherwise false

## operator==()

template<typename TKey, typename T, typename THash, typename TKeyEqual>

bool etl::operator== | ( | const etl::iunordered_multimap< TKey, T, THash, TKeyEqual > & | lhs,
|  | const etl::iunordered_multimap< TKey, T, THash, TKeyEqual > & | rhs )

Equal operator.

Parameters

  lhs | Reference to the first unordered_multimap.
  rhs | Reference to the second unordered_multimap.

Returns
  true if the arrays are equal, otherwise false