A C++ template library for embedded applications
Designed and maintained by
Aster Consulting Ltd
MIT licensed
Join the ETL community

unordered_map / unordered_multimap


A fixed capacity map.
Uses std::less as the default key comparison method.
STL equivalent: std::unordered_map / std::unordered_multimap

This page just describes etl::unordered_map.

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

Inherits from etl::iunordered_map<TKey, TMapped, TKeyCompare>
etl::iunordered_map may be used as a size independent pointer or reference type for any etl::unordered_map
instance.

____________________________________________________________________________________________________

Member types


value_type              std::pair<const TKey, T>
key_type                The type of the key value
mapped_type             The type of the mapped value
hasher                  The type used to hash the key
key_equal               The functor used to compare keys
reference               A reference to a value_type
const_reference         A reference to a const value_type
pointer                 A pointer to a value_type
const_pointer           A pointer to a const value_type
size_type               The type used for size information
iterator                Random access iterator
const_iterator          Constant random access iterator
local_iterator          Iterator to a bucket
local_const_iterator    A const iterator to a bucket

____________________________________________________________________________________________________

Constructor


etl::map<Tkey, TMapped, SIZE, TKeyCompare>();

template <typename TIterator>
etl::map<Tkey, TMapped, SIZE, TKeyCompare>(TIterator begin, TIterator end);

____________________________________________________________________________________________________

Element access


TMapped& at(key_parameter_t key)
const TMapped& at(key_parameter_t key) const

Returns a reference or const reference to the indexed element.
Emits an etl::map_out_of_range if the key is not in the table. If assert or exceptions are not enabled then undefined
behaviour occurs.
____________________________________________________________________________________________________

TMapped& operator[](key_parameter_t key)
const TMapped& operator[](key_parameter_t key) const

Returns a reference or const reference to the indexed element.
If the key does not exist then one is created using the default constructor. If the map is full then emits an
etl::map_full. If asserts or exceptions are not enabled then undefined behaviour occurs.
____________________________________________________________________________________________________

iterator find(key_parameter_t key);
const_iterator find (key_parameter_t key) const;

Searches the container for an element with a key equivalent to key and returns an iterator to it if found, otherwise it
returns an iterator to etl::map::end()
____________________________________________________________________________________________________

size_type count(key_parameter_t key) const;

Count elements with a specific key.
Searches the container for elements with a key equivalent to key and returns the number of matches
____________________________________________________________________________________________________

iterator lower_bound(key_parameter_t key);
const_iterator lower_bound(key_parameter_t key) const;

Returns the iterator to the lower bound.
Returns an iterator pointing to the first element in the container whose key is not considered to go before key (i.e.,
either it is equivalent or goes after).
____________________________________________________________________________________________________

iterator upper_bound(key_parameter_t key);
const_iterator upper_bound(key_parameter_t key) const;

Return the iterator to the upper bound.
Returns an iterator pointing to the first element in the container whose key is considered to go after key.
____________________________________________________________________________________________________

pair<const_iterator,const_iterator> equal_range(key_parameter_t key) const;
pair<iterator,iterator> equal_range(key_parameter_t key);

Get the range of equal elements.
Returns the bounds of a range that includes all the elements in the container which have a key equivalent to key.

____________________________________________________________________________________________________

Iterators


iterator begin()
const_iterator begin() const
const_iterator cbegin() const

Returns an iterator to the beginning of the map.
____________________________________________________________________________________________________

iterator end()
const_iterator end() const
const_iterator cend() const

Returns an iterator to the end of the map.
____________________________________________________________________________________________________

iterator rbegin()
const_iterator rbegin() const
const_iterator crbegin() const

Returns a reverse iterator to the beginning of the map.
____________________________________________________________________________________________________

iterator rbegin()
const_iterator rbegin() const
const_iterator crbegin() const

Returns a reverse iterator to the beginning of the map.

____________________________________________________________________________________________________

Capacity


bool empty() const

Returns true if the size of the map is zero, otherwise false.
____________________________________________________________________________________________________

bool full() const

Returns true if the size of the map is SIZE, otherwise false.
____________________________________________________________________________________________________

size_t size() const

Returns the size of the map.
____________________________________________________________________________________________________

size_t max_size() const

Returns the maximum possible size of the map.
____________________________________________________________________________________________________

size_t available() const

Returns the remaining available capacity in the map.

____________________________________________________________________________________________________

Modifiers


template <typename TIterator>
void insert(TIterator begin, TIterator end);
iterator insert(mapped_parameter_t value);

Inserts values in to the map.
If the map is full then emits an etl::map_full error. If asserts or exceptions are not enabled then undefined
behaviour occurs.
____________________________________________________________________________________________________

template <typename TIterator>
iterator erase(TIterator begin, TIterator end);
iterator erase(TIterator element);

Erases values in the map.
Iterator are not checked for validity.
____________________________________________________________________________________________________

void clear();

Clears the map to a size of zero.

____________________________________________________________________________________________________

Non-member functions


==  true if the contents of the maps are equal, otherwise false.
!=  true if the contents of the maps are not equal, otherwise false.
map.h / multimap.h