KeyValueVector< KeyT, ValT, KeyContT, ValContT, IdxT, MapT > Class Template Reference

This class is pretty much similar to a map. More...

#include <ArmarXCore/util/CPPUtility/KeyValueVector.h>

Public Types

using const_iterator = typename ValContT::const_iterator
 
using iterator = typename ValContT::iterator
 

Public Member Functions

void add (KeyT key, ValT value)
 
ValT & at (const KeyT &k)
 
ValT const & at (const KeyT &k) const
 
ValT const & at (const KeyT &k, const ValT &defaultVal) const
 
ValT & at (const KeyT &k, ValT &defaultVal)
 
ValT & at (IdxT i)
 
ValT const & at (IdxT i) const
 
iterator begin ()
 
const_iterator begin () const
 
const_iterator cbegin () const
 
const_iterator cend () const
 
void clear ()
 
IdxT count (const KeyT &k) const
 
iterator end ()
 
const_iterator end () const
 
bool has (const KeyT &k) const
 
IdxT index (const KeyT &k) const
 
MapT const & indices () const
 
KeyContT const & keys () const
 
IdxT size () const
 
ValContT const & values () const
 

Detailed Description

template<class KeyT, class ValT, class KeyContT = std::vector<KeyT>, class ValContT = std::vector<ValT>, class IdxT = typename ValContT::size_type, class MapT = std::map<KeyT, IdxT>>
class armarx::KeyValueVector< KeyT, ValT, KeyContT, ValContT, IdxT, MapT >

This class is pretty much similar to a map.

This class stores keys and values in two vectors and uses a map to map the keys to the index of the corresponding value This enables map acces and index access. The index of an inserted element never changes (this is different to a map). Index access may be required in a high frequency case (e.g. an rt control loop)

Member Typedef Documentation

◆ const_iterator

template<class KeyT, class ValT, class KeyContT = std::vector<KeyT>, class ValContT = std::vector<ValT>, class IdxT = typename ValContT::size_type, class MapT = std::map<KeyT, IdxT>>
using const_iterator = typename ValContT::const_iterator

◆ iterator

template<class KeyT, class ValT, class KeyContT = std::vector<KeyT>, class ValContT = std::vector<ValT>, class IdxT = typename ValContT::size_type, class MapT = std::map<KeyT, IdxT>>
using iterator = typename ValContT::iterator

Member Function Documentation

◆ add()

template<class KeyT, class ValT, class KeyContT, class ValContT, class IdxT, class MapT>
void add ( KeyT key,
ValT value )

◆ at() [1/6]

template<class KeyT, class ValT, class KeyContT, class ValContT, class IdxT, class MapT>
ValT & at ( const KeyT & k)

◆ at() [2/6]

template<class KeyT, class ValT, class KeyContT, class ValContT, class IdxT, class MapT>
const ValT & at ( const KeyT & k) const

◆ at() [3/6]

template<class KeyT, class ValT, class KeyContT, class ValContT, class IdxT, class MapT>
const ValT & at ( const KeyT & k,
const ValT & defaultVal ) const

◆ at() [4/6]

template<class KeyT, class ValT, class KeyContT, class ValContT, class IdxT, class MapT>
ValT & at ( const KeyT & k,
ValT & defaultVal )

◆ at() [5/6]

template<class KeyT, class ValT, class KeyContT, class ValContT, class IdxT, class MapT>
ValT & at ( IdxT i)

◆ at() [6/6]

template<class KeyT, class ValT, class KeyContT, class ValContT, class IdxT, class MapT>
const ValT & at ( IdxT i) const

◆ begin() [1/2]

template<class KeyT, class ValT, class KeyContT, class ValContT, class IdxT, class MapT>
KeyValueVector< KeyT, ValT, KeyContT, ValContT, IdxT, MapT >::iterator begin ( )

◆ begin() [2/2]

template<class KeyT, class ValT, class KeyContT, class ValContT, class IdxT, class MapT>
KeyValueVector< KeyT, ValT, KeyContT, ValContT, IdxT, MapT >::const_iterator begin ( ) const

◆ cbegin()

template<class KeyT, class ValT, class KeyContT, class ValContT, class IdxT, class MapT>
KeyValueVector< KeyT, ValT, KeyContT, ValContT, IdxT, MapT >::const_iterator cbegin ( ) const

◆ cend()

template<class KeyT, class ValT, class KeyContT, class ValContT, class IdxT, class MapT>
KeyValueVector< KeyT, ValT, KeyContT, ValContT, IdxT, MapT >::const_iterator cend ( ) const

◆ clear()

template<class KeyT, class ValT, class KeyContT, class ValContT, class IdxT, class MapT>
void clear ( )

◆ count()

template<class KeyT, class ValT, class KeyContT, class ValContT, class IdxT, class MapT>
IdxT count ( const KeyT & k) const

◆ end() [1/2]

template<class KeyT, class ValT, class KeyContT, class ValContT, class IdxT, class MapT>
KeyValueVector< KeyT, ValT, KeyContT, ValContT, IdxT, MapT >::iterator end ( )

◆ end() [2/2]

template<class KeyT, class ValT, class KeyContT, class ValContT, class IdxT, class MapT>
KeyValueVector< KeyT, ValT, KeyContT, ValContT, IdxT, MapT >::const_iterator end ( ) const

◆ has()

template<class KeyT, class ValT, class KeyContT, class ValContT, class IdxT, class MapT>
bool has ( const KeyT & k) const

◆ index()

template<class KeyT, class ValT, class KeyContT, class ValContT, class IdxT, class MapT>
IdxT index ( const KeyT & k) const

◆ indices()

template<class KeyT, class ValT, class KeyContT, class ValContT, class IdxT, class MapT>
const MapT & indices ( ) const

◆ keys()

template<class KeyT, class ValT, class KeyContT, class ValContT, class IdxT, class MapT>
const KeyContT & keys ( ) const

◆ size()

template<class KeyT, class ValT, class KeyContT, class ValContT, class IdxT, class MapT>
IdxT size ( ) const

◆ values()

template<class KeyT, class ValT, class KeyContT, class ValContT, class IdxT, class MapT>
const ValContT & values ( ) const

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