Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
lanelet::HybridMap< ValueT, PairArrayT, PairArray > Class Template Reference

A hybrid map is just like a normal map with keys as string, but elements can also be accessed using an enum for the keys. This is much faster than using strings for the lookup. More...

#include <HybridMap.h>

Public Types

using const_iterator = typename Map::const_iterator
 
using difference_type = typename Map::difference_type
 
using Enum = std::decay_t< decltype(PairArray[0].second)>
 
using iterator = typename Map::iterator
 
using key_type = typename Map::key_type
 
using Map = std::map< std::string, ValueT >
 
using mapped_type = typename Map::mapped_type
 
using size_type = typename Map::size_type
 
using value_type = typename Map::value_type
 
using Vec = std::vector< typename Map::iterator >
 

Public Member Functions

ValueT & at (const Enum &k)
 
const ValueT & at (const Enum &k) const
 
ValueT & at (const key_type &k)
 
const ValueT & at (const key_type &k) const
 
iterator begin ()
 
const_iterator begin () const
 
void clear ()
 
bool empty () const
 
iterator end ()
 
const_iterator end () const
 
size_type erase (const std::string &k)
 
iterator erase (const_iterator pos)
 
iterator find (const key_type &k)
 
const_iterator find (const key_type &k) const
 
iterator find (Enum k)
 
const_iterator find (Enum k) const
 
 HybridMap () noexcept=default
 
 HybridMap (const HybridMap &rhs)
 
 HybridMap (const std::initializer_list< std::pair< const std::string, ValueT >> &list)
 
 HybridMap (HybridMap &&rhs) noexcept
 
template<typename InputIterator >
 HybridMap (InputIterator begin, InputIterator end)
 
std::pair< iterator, bool > insert (const value_type &v)
 
iterator insert (const_iterator hint, const value_type &v)
 
auto key_comp () const
 
bool operator!= (const HybridMap &other) const
 
HybridMapoperator= (const HybridMap &rhs)
 
HybridMapoperator= (HybridMap &&rhs) noexcept
 
bool operator== (const HybridMap &other) const
 
ValueT & operator[] (const Enum &k)
 
ValueT & operator[] (const key_type &k)
 
size_t size () const
 
auto value_comp () const
 
 ~HybridMap () noexcept=default
 

Private Types

using Array = detail::ArrayView< PairArrayT, PairArray >
 

Private Member Functions

void updateV (iterator it)
 

Private Attributes

Map m_
 
Vec v_
 

Detailed Description

template<typename ValueT, typename PairArrayT, PairArrayT PairArray>
class lanelet::HybridMap< ValueT, PairArrayT, PairArray >

A hybrid map is just like a normal map with keys as string, but elements can also be accessed using an enum for the keys. This is much faster than using strings for the lookup.

Template Parameters
Enuman enum with continuous values. The last element must be named "End".

Definition at line 67 of file HybridMap.h.

Member Typedef Documentation

◆ Array

template<typename ValueT , typename PairArrayT , PairArrayT PairArray>
using lanelet::HybridMap< ValueT, PairArrayT, PairArray >::Array = detail::ArrayView<PairArrayT, PairArray>
private

Definition at line 68 of file HybridMap.h.

◆ const_iterator

template<typename ValueT , typename PairArrayT , PairArrayT PairArray>
using lanelet::HybridMap< ValueT, PairArrayT, PairArray >::const_iterator = typename Map::const_iterator

Definition at line 78 of file HybridMap.h.

◆ difference_type

template<typename ValueT , typename PairArrayT , PairArrayT PairArray>
using lanelet::HybridMap< ValueT, PairArrayT, PairArray >::difference_type = typename Map::difference_type

Definition at line 80 of file HybridMap.h.

◆ Enum

template<typename ValueT , typename PairArrayT , PairArrayT PairArray>
using lanelet::HybridMap< ValueT, PairArrayT, PairArray >::Enum = std::decay_t<decltype(PairArray[0].second)>

Definition at line 73 of file HybridMap.h.

◆ iterator

template<typename ValueT , typename PairArrayT , PairArrayT PairArray>
using lanelet::HybridMap< ValueT, PairArrayT, PairArray >::iterator = typename Map::iterator

Definition at line 77 of file HybridMap.h.

◆ key_type

template<typename ValueT , typename PairArrayT , PairArrayT PairArray>
using lanelet::HybridMap< ValueT, PairArrayT, PairArray >::key_type = typename Map::key_type

Definition at line 75 of file HybridMap.h.

◆ Map

template<typename ValueT , typename PairArrayT , PairArrayT PairArray>
using lanelet::HybridMap< ValueT, PairArrayT, PairArray >::Map = std::map<std::string, ValueT>

Definition at line 71 of file HybridMap.h.

◆ mapped_type

template<typename ValueT , typename PairArrayT , PairArrayT PairArray>
using lanelet::HybridMap< ValueT, PairArrayT, PairArray >::mapped_type = typename Map::mapped_type

Definition at line 76 of file HybridMap.h.

◆ size_type

template<typename ValueT , typename PairArrayT , PairArrayT PairArray>
using lanelet::HybridMap< ValueT, PairArrayT, PairArray >::size_type = typename Map::size_type

Definition at line 81 of file HybridMap.h.

◆ value_type

template<typename ValueT , typename PairArrayT , PairArrayT PairArray>
using lanelet::HybridMap< ValueT, PairArrayT, PairArray >::value_type = typename Map::value_type

Definition at line 79 of file HybridMap.h.

◆ Vec

template<typename ValueT , typename PairArrayT , PairArrayT PairArray>
using lanelet::HybridMap< ValueT, PairArrayT, PairArray >::Vec = std::vector<typename Map::iterator>

Definition at line 72 of file HybridMap.h.

Constructor & Destructor Documentation

◆ HybridMap() [1/5]

template<typename ValueT , typename PairArrayT , PairArrayT PairArray>
lanelet::HybridMap< ValueT, PairArrayT, PairArray >::HybridMap ( )
defaultnoexcept

◆ HybridMap() [2/5]

template<typename ValueT , typename PairArrayT , PairArrayT PairArray>
lanelet::HybridMap< ValueT, PairArrayT, PairArray >::HybridMap ( HybridMap< ValueT, PairArrayT, PairArray > &&  rhs)
inlinenoexcept

Definition at line 83 of file HybridMap.h.

◆ HybridMap() [3/5]

template<typename ValueT , typename PairArrayT , PairArrayT PairArray>
lanelet::HybridMap< ValueT, PairArrayT, PairArray >::HybridMap ( const HybridMap< ValueT, PairArrayT, PairArray > &  rhs)
inline

Definition at line 94 of file HybridMap.h.

◆ HybridMap() [4/5]

template<typename ValueT , typename PairArrayT , PairArrayT PairArray>
lanelet::HybridMap< ValueT, PairArrayT, PairArray >::HybridMap ( const std::initializer_list< std::pair< const std::string, ValueT >> &  list)
inline

Definition at line 100 of file HybridMap.h.

◆ HybridMap() [5/5]

template<typename ValueT , typename PairArrayT , PairArrayT PairArray>
template<typename InputIterator >
lanelet::HybridMap< ValueT, PairArrayT, PairArray >::HybridMap ( InputIterator  begin,
InputIterator  end 
)
inline

Definition at line 106 of file HybridMap.h.

◆ ~HybridMap()

template<typename ValueT , typename PairArrayT , PairArrayT PairArray>
lanelet::HybridMap< ValueT, PairArrayT, PairArray >::~HybridMap ( )
defaultnoexcept

Member Function Documentation

◆ at() [1/4]

template<typename ValueT , typename PairArrayT , PairArrayT PairArray>
ValueT& lanelet::HybridMap< ValueT, PairArrayT, PairArray >::at ( const Enum k)
inline

Definition at line 200 of file HybridMap.h.

◆ at() [2/4]

template<typename ValueT , typename PairArrayT , PairArrayT PairArray>
const ValueT& lanelet::HybridMap< ValueT, PairArrayT, PairArray >::at ( const Enum k) const
inline

Definition at line 185 of file HybridMap.h.

◆ at() [3/4]

template<typename ValueT , typename PairArrayT , PairArrayT PairArray>
ValueT& lanelet::HybridMap< ValueT, PairArrayT, PairArray >::at ( const key_type k)
inline

Definition at line 193 of file HybridMap.h.

◆ at() [4/4]

template<typename ValueT , typename PairArrayT , PairArrayT PairArray>
const ValueT& lanelet::HybridMap< ValueT, PairArrayT, PairArray >::at ( const key_type k) const
inline

Definition at line 178 of file HybridMap.h.

◆ begin() [1/2]

template<typename ValueT , typename PairArrayT , PairArrayT PairArray>
iterator lanelet::HybridMap< ValueT, PairArrayT, PairArray >::begin ( )
inline

Definition at line 125 of file HybridMap.h.

◆ begin() [2/2]

template<typename ValueT , typename PairArrayT , PairArrayT PairArray>
const_iterator lanelet::HybridMap< ValueT, PairArrayT, PairArray >::begin ( ) const
inline

Definition at line 127 of file HybridMap.h.

◆ clear()

template<typename ValueT , typename PairArrayT , PairArrayT PairArray>
void lanelet::HybridMap< ValueT, PairArrayT, PairArray >::clear ( )
inline

Definition at line 208 of file HybridMap.h.

◆ empty()

template<typename ValueT , typename PairArrayT , PairArrayT PairArray>
bool lanelet::HybridMap< ValueT, PairArrayT, PairArray >::empty ( ) const
inline

Definition at line 210 of file HybridMap.h.

◆ end() [1/2]

template<typename ValueT , typename PairArrayT , PairArrayT PairArray>
iterator lanelet::HybridMap< ValueT, PairArrayT, PairArray >::end ( )
inline

Definition at line 126 of file HybridMap.h.

◆ end() [2/2]

template<typename ValueT , typename PairArrayT , PairArrayT PairArray>
const_iterator lanelet::HybridMap< ValueT, PairArrayT, PairArray >::end ( ) const
inline

Definition at line 128 of file HybridMap.h.

◆ erase() [1/2]

template<typename ValueT , typename PairArrayT , PairArrayT PairArray>
size_type lanelet::HybridMap< ValueT, PairArrayT, PairArray >::erase ( const std::string &  k)
inline

Definition at line 152 of file HybridMap.h.

◆ erase() [2/2]

template<typename ValueT , typename PairArrayT , PairArrayT PairArray>
iterator lanelet::HybridMap< ValueT, PairArrayT, PairArray >::erase ( const_iterator  pos)
inline

Definition at line 144 of file HybridMap.h.

◆ find() [1/4]

template<typename ValueT , typename PairArrayT , PairArrayT PairArray>
iterator lanelet::HybridMap< ValueT, PairArrayT, PairArray >::find ( const key_type k)
inline

Definition at line 114 of file HybridMap.h.

◆ find() [2/4]

template<typename ValueT , typename PairArrayT , PairArrayT PairArray>
const_iterator lanelet::HybridMap< ValueT, PairArrayT, PairArray >::find ( const key_type k) const
inline

Definition at line 119 of file HybridMap.h.

◆ find() [3/4]

template<typename ValueT , typename PairArrayT , PairArrayT PairArray>
iterator lanelet::HybridMap< ValueT, PairArrayT, PairArray >::find ( Enum  k)
inline

Definition at line 115 of file HybridMap.h.

◆ find() [4/4]

template<typename ValueT , typename PairArrayT , PairArrayT PairArray>
const_iterator lanelet::HybridMap< ValueT, PairArrayT, PairArray >::find ( Enum  k) const
inline

Definition at line 120 of file HybridMap.h.

◆ insert() [1/2]

template<typename ValueT , typename PairArrayT , PairArrayT PairArray>
std::pair<iterator, bool> lanelet::HybridMap< ValueT, PairArrayT, PairArray >::insert ( const value_type v)
inline

Definition at line 130 of file HybridMap.h.

◆ insert() [2/2]

template<typename ValueT , typename PairArrayT , PairArrayT PairArray>
iterator lanelet::HybridMap< ValueT, PairArrayT, PairArray >::insert ( const_iterator  hint,
const value_type v 
)
inline

Definition at line 138 of file HybridMap.h.

◆ key_comp()

template<typename ValueT , typename PairArrayT , PairArrayT PairArray>
auto lanelet::HybridMap< ValueT, PairArrayT, PairArray >::key_comp ( ) const
inline

Definition at line 213 of file HybridMap.h.

◆ operator!=()

template<typename ValueT , typename PairArrayT , PairArrayT PairArray>
bool lanelet::HybridMap< ValueT, PairArrayT, PairArray >::operator!= ( const HybridMap< ValueT, PairArrayT, PairArray > &  other) const
inline

Definition at line 217 of file HybridMap.h.

◆ operator=() [1/2]

template<typename ValueT , typename PairArrayT , PairArrayT PairArray>
HybridMap& lanelet::HybridMap< ValueT, PairArrayT, PairArray >::operator= ( const HybridMap< ValueT, PairArrayT, PairArray > &  rhs)
inline

Definition at line 95 of file HybridMap.h.

◆ operator=() [2/2]

template<typename ValueT , typename PairArrayT , PairArrayT PairArray>
HybridMap& lanelet::HybridMap< ValueT, PairArrayT, PairArray >::operator= ( HybridMap< ValueT, PairArrayT, PairArray > &&  rhs)
inlinenoexcept

Definition at line 87 of file HybridMap.h.

◆ operator==()

template<typename ValueT , typename PairArrayT , PairArrayT PairArray>
bool lanelet::HybridMap< ValueT, PairArrayT, PairArray >::operator== ( const HybridMap< ValueT, PairArrayT, PairArray > &  other) const
inline

Definition at line 216 of file HybridMap.h.

◆ operator[]() [1/2]

template<typename ValueT , typename PairArrayT , PairArrayT PairArray>
ValueT& lanelet::HybridMap< ValueT, PairArrayT, PairArray >::operator[] ( const Enum k)
inline

Definition at line 168 of file HybridMap.h.

◆ operator[]() [2/2]

template<typename ValueT , typename PairArrayT , PairArrayT PairArray>
ValueT& lanelet::HybridMap< ValueT, PairArrayT, PairArray >::operator[] ( const key_type k)
inline

Definition at line 161 of file HybridMap.h.

◆ size()

template<typename ValueT , typename PairArrayT , PairArrayT PairArray>
size_t lanelet::HybridMap< ValueT, PairArrayT, PairArray >::size ( ) const
inline

Definition at line 211 of file HybridMap.h.

◆ updateV()

template<typename ValueT , typename PairArrayT , PairArrayT PairArray>
void lanelet::HybridMap< ValueT, PairArrayT, PairArray >::updateV ( iterator  it)
inlineprivate

Definition at line 220 of file HybridMap.h.

◆ value_comp()

template<typename ValueT , typename PairArrayT , PairArrayT PairArray>
auto lanelet::HybridMap< ValueT, PairArrayT, PairArray >::value_comp ( ) const
inline

Definition at line 214 of file HybridMap.h.

Member Data Documentation

◆ m_

template<typename ValueT , typename PairArrayT , PairArrayT PairArray>
Map lanelet::HybridMap< ValueT, PairArrayT, PairArray >::m_
private

Definition at line 230 of file HybridMap.h.

◆ v_

template<typename ValueT , typename PairArrayT , PairArrayT PairArray>
Vec lanelet::HybridMap< ValueT, PairArrayT, PairArray >::v_
private

Definition at line 231 of file HybridMap.h.


The documentation for this class was generated from the following file:


lanelet2_core
Author(s): Fabian Poggenhans
autogenerated on Thu Mar 6 2025 03:25:52