Embedded Template Library 1.0
|
Classes | |
class | etl::iflat_map< TKey, TMapped, TKeyCompare > |
class | etl::flat_map< TKey, TValue, MAX_SIZE_, TCompare > |
Functions | |
template<typename TKey , typename TMapped , typename TKeyCompare > | |
bool | etl::operator== (const etl::iflat_map< TKey, TMapped, TKeyCompare > &lhs, const etl::iflat_map< TKey, TMapped, TKeyCompare > &rhs) |
template<typename TKey , typename TMapped , typename TKeyCompare > | |
bool | etl::operator!= (const etl::iflat_map< TKey, TMapped, TKeyCompare > &lhs, const etl::iflat_map< TKey, TMapped, TKeyCompare > &rhs) |
A flat_map based on a sorted vector with the capacity defined at compile time. This container is best used for tables that are occasionally updated and spend most of their time being searched. Has insertion of O(N) and find of O(logN). Duplicate entries are not allowed.
class etl::iflat_map |
The base class for specifically sized flat_maps. Can be used as a reference type for all flat_maps containing a specific type.
Public Types | |
typedef ETL_OR_STD::pair< const TKey, TMapped > | value_type |
typedef TKey | key_type |
typedef TMapped | mapped_type |
typedef TKeyCompare | key_compare |
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 mapped_type & | mapped_reference |
typedef const mapped_type & | const_mapped_reference |
typedef refmap_t::iterator | iterator |
typedef refmap_t::const_iterator | const_iterator |
typedef ETL_OR_STD::reverse_iterator< iterator > | reverse_iterator |
typedef ETL_OR_STD::reverse_iterator< const_iterator > | const_reverse_iterator |
typedef etl::iterator_traits< iterator >::difference_type | difference_type |
Public Member Functions | |
iterator | begin () |
const_iterator | begin () const |
iterator | end () |
const_iterator | end () const |
const_iterator | cbegin () const |
const_iterator | cend () const |
reverse_iterator | rbegin () |
const_reverse_iterator | rbegin () const |
reverse_iterator | rend () |
const_reverse_iterator | rend () const |
const_reverse_iterator | crbegin () const |
const_reverse_iterator | crend () const |
mapped_reference | operator[] (const_key_reference key) |
mapped_reference | at (const_key_reference key) |
const_mapped_reference | at (const_key_reference key) const |
template<typename TIterator > | |
void | assign (TIterator first, TIterator last) |
ETL_OR_STD::pair< iterator, bool > | insert (const_reference value) |
iterator | insert (const_iterator, const_reference value) |
template<class TIterator > | |
void | insert (TIterator first, TIterator last) |
ETL_OR_STD::pair< iterator, bool > | emplace (const value_type &value) |
Emplaces a value to the map. | |
template<typename T1 > | |
ETL_OR_STD::pair< iterator, bool > | emplace (const_key_reference key, const T1 &value1) |
Emplaces a value to the map. | |
template<typename T1 , typename T2 > | |
ETL_OR_STD::pair< iterator, bool > | emplace (const_key_reference key, const T1 &value1, const T2 &value2) |
Emplaces a value to the map. | |
template<typename T1 , typename T2 , typename T3 > | |
ETL_OR_STD::pair< iterator, bool > | emplace (const_key_reference key, const T1 &value1, const T2 &value2, const T3 &value3) |
Emplaces a value to the map. | |
template<typename T1 , typename T2 , typename T3 , typename T4 > | |
ETL_OR_STD::pair< iterator, bool > | emplace (const_key_reference key, const T1 &value1, const T2 &value2, const T3 &value3, const T4 &value4) |
Emplaces a value to the map. | |
size_t | erase (const_key_reference key) |
iterator | erase (iterator i_element) |
iterator | erase (const_iterator i_element) |
iterator | erase (const_iterator first, const_iterator last) |
void | clear () |
Clears the flat_map. | |
iterator | find (const_key_reference key) |
const_iterator | find (const_key_reference key) const |
size_t | count (const_key_reference key) const |
iterator | lower_bound (const_key_reference key) |
const_iterator | lower_bound (const_key_reference key) const |
iterator | upper_bound (const_key_reference key) |
const_iterator | upper_bound (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 |
bool | contains (const_key_reference key) const |
Check if the map contains the key. | |
iflat_map & | operator= (const iflat_map &rhs) |
Assignment operator. | |
size_type | size () const |
bool | empty () const |
bool | full () const |
size_type | capacity () const |
size_type | max_size () const |
size_t | available () const |
Protected Member Functions | |
iflat_map (lookup_t &lookup_, storage_t &storage_) | |
Constructor. | |
~iflat_map () | |
Destructor. | |
|
inline |
Assigns values to the flat_map. If ETL_THROW_EXCEPTIONS & ETL_DEBUG are defined, emits flat_map_full if the flat_map does not have enough free space. If ETL_THROW_EXCEPTIONS & ETL_DEBUG are defined, emits flat_map_iterator if the iterators are reversed.
first | The iterator to the first element. |
last | The iterator to the last element + 1. |
|
inline |
Returns a reference to the value at index 'key' If asserts or exceptions are enabled, emits an etl::flat_map_out_of_bounds if the key is not in the range.
i | The index. |
|
inline |
Returns a const reference to the value at index 'key' If asserts or exceptions are enabled, emits an etl::flat_map_out_of_bounds if the key is not in the range.
i | The index. |
|
inline |
Returns the remaining capacity.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Counts an element.
key | The key to search for. |
|
inline |
|
inline |
|
inline |
Checks the 'empty' state of the flat_map.
|
inline |
|
inline |
|
inline |
Finds the range of equal elements of a key
key | The key to search for. |
|
inline |
Finds the range of equal elements of a key
key | The key to search for. |
|
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 by last.
first | Iterator to the first element. |
last | Iterator to the last element. |
|
inline |
Erases an element. \ param i_element Iterator to the element.
|
inline |
Erases an element.
key | The key to erase. |
|
inline |
Erases an element.
i_element | Iterator to the element. |
|
inline |
Finds an element.
key | The key to search for. |
|
inline |
Finds an element.
key | The key to search for. |
|
inline |
Checks the 'full' state of the flat_map.
|
inline |
Inserts a value to the flat_map. If asserts or exceptions are enabled, emits flat_map_full if the flat_map is already full.
position | The position to insert at. |
value | The value to insert. |
|
inline |
Inserts a value to the flat_map. If asserts or exceptions are enabled, emits flat_map_full if the flat_map is already full.
value | The value to insert. |
|
inline |
Inserts a range of values to the flat_map. If asserts or exceptions are enabled, emits flat_map_full if the flat_map does not have enough free space.
position | The position to insert at. |
first | The first element to add. |
last | The last + 1 element to add. |
|
inline |
Finds the lower bound of a key
key | The key to search for. |
|
inline |
Finds the lower bound of a key
key | The key to search for. |
|
inline |
|
inline |
Returns a reference to the value at index 'key'
i | The index. |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Finds the upper bound of a key
key | The key to search for. |
|
inline |
Finds the upper bound of a key
key | The key to search for. |
class etl::flat_map |
A flat_map implementation that uses a fixed size buffer.
TKey | The key type. |
TValue | The value type. |
TCompare | The type to compare keys. Default = etl::less<TKey> |
MAX_SIZE_ | The maximum number of elements that can be stored. |
Public Member Functions | |
flat_map () | |
Constructor. | |
flat_map (const flat_map &other) | |
Copy constructor. | |
template<typename TIterator > | |
flat_map (TIterator first, TIterator last) | |
~flat_map () | |
Destructor. | |
flat_map & | operator= (const flat_map &rhs) |
Assignment operator. | |
![]() | |
iterator | begin () |
const_iterator | begin () const |
iterator | end () |
const_iterator | end () const |
const_iterator | cbegin () const |
const_iterator | cend () const |
reverse_iterator | rbegin () |
const_reverse_iterator | rbegin () const |
reverse_iterator | rend () |
const_reverse_iterator | rend () const |
const_reverse_iterator | crbegin () const |
const_reverse_iterator | crend () const |
mapped_reference | operator[] (const_key_reference key) |
mapped_reference | at (const_key_reference key) |
const_mapped_reference | at (const_key_reference key) const |
void | assign (TIterator first, TIterator last) |
ETL_OR_STD::pair< iterator, bool > | insert (const_reference value) |
iterator | insert (const_iterator, const_reference value) |
void | insert (TIterator first, TIterator last) |
ETL_OR_STD::pair< iterator, bool > | emplace (const value_type &value) |
Emplaces a value to the map. | |
ETL_OR_STD::pair< iterator, bool > | emplace (const_key_reference key, const T1 &value1) |
Emplaces a value to the map. | |
ETL_OR_STD::pair< iterator, bool > | emplace (const_key_reference key, const T1 &value1, const T2 &value2) |
Emplaces a value to the map. | |
ETL_OR_STD::pair< iterator, bool > | emplace (const_key_reference key, const T1 &value1, const T2 &value2, const T3 &value3) |
Emplaces a value to the map. | |
ETL_OR_STD::pair< iterator, bool > | emplace (const_key_reference key, const T1 &value1, const T2 &value2, const T3 &value3, const T4 &value4) |
Emplaces a value to the map. | |
size_t | erase (const_key_reference key) |
iterator | erase (iterator i_element) |
iterator | erase (const_iterator i_element) |
iterator | erase (const_iterator first, const_iterator last) |
void | clear () |
Clears the flat_map. | |
iterator | find (const_key_reference key) |
const_iterator | find (const_key_reference key) const |
size_t | count (const_key_reference key) const |
iterator | lower_bound (const_key_reference key) |
const_iterator | lower_bound (const_key_reference key) const |
iterator | upper_bound (const_key_reference key) |
const_iterator | upper_bound (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 |
bool | contains (const_key_reference key) const |
Check if the map contains the key. | |
iflat_map & | operator= (const iflat_map &rhs) |
Assignment operator. | |
size_type | size () const |
bool | empty () const |
bool | full () const |
size_type | capacity () const |
size_type | max_size () const |
size_t | available () const |
Static Public Attributes | |
static ETL_CONSTANT size_t | MAX_SIZE = MAX_SIZE_ |
Additional Inherited Members | |
![]() | |
typedef ETL_OR_STD::pair< const TKey, TValue > | value_type |
typedef TKey | key_type |
typedef TValue | mapped_type |
typedef etl::less< TKey > | key_compare |
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 mapped_type & | mapped_reference |
typedef const mapped_type & | const_mapped_reference |
typedef refmap_t::iterator | iterator |
typedef refmap_t::const_iterator | const_iterator |
typedef ETL_OR_STD::reverse_iterator< iterator > | reverse_iterator |
typedef ETL_OR_STD::reverse_iterator< const_iterator > | const_reverse_iterator |
typedef etl::iterator_traits< iterator >::difference_type | difference_type |
![]() | |
iflat_map (lookup_t &lookup_, storage_t &storage_) | |
Constructor. | |
~iflat_map () | |
Destructor. | |
|
inline |
Constructor, from an iterator range.
TIterator | The iterator type. |
first | The iterator to the first element. |
last | The iterator to the last element + 1. |
bool etl::operator!= | ( | const etl::iflat_map< TKey, TMapped, TKeyCompare > & | lhs, |
const etl::iflat_map< TKey, TMapped, TKeyCompare > & | rhs | ||
) |
bool etl::operator== | ( | const etl::iflat_map< TKey, TMapped, TKeyCompare > & | lhs, |
const etl::iflat_map< TKey, TMapped, TKeyCompare > & | rhs | ||
) |