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)

Definition at line 45 of file KeyValueVector.h.

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

Definition at line 67 of file KeyValueVector.h.

◆ 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

Definition at line 66 of file KeyValueVector.h.

Member Function Documentation

◆ add()

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

Definition at line 95 of file KeyValueVector.h.

+ Here is the call graph for this function:

◆ at() [1/6]

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

Definition at line 129 of file KeyValueVector.h.

+ Here is the call graph for this function:

◆ at() [2/6]

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

Definition at line 136 of file KeyValueVector.h.

+ Here is the call graph for this function:

◆ 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

Definition at line 150 of file KeyValueVector.h.

+ Here is the call graph for this function:

◆ at() [4/6]

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

Definition at line 143 of file KeyValueVector.h.

+ Here is the call graph for this function:

◆ at() [5/6]

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

Definition at line 115 of file KeyValueVector.h.

+ Here is the caller graph for this function:

◆ at() [6/6]

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

Definition at line 122 of file KeyValueVector.h.

◆ 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 ( )

Definition at line 209 of file KeyValueVector.h.

+ Here is the caller graph for this function:

◆ 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

Definition at line 223 of file KeyValueVector.h.

◆ 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

Definition at line 237 of file KeyValueVector.h.

+ Here is the call graph for this function:

◆ 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

Definition at line 244 of file KeyValueVector.h.

+ Here is the call graph for this function:

◆ clear()

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

Definition at line 200 of file KeyValueVector.h.

◆ count()

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

Definition at line 186 of file KeyValueVector.h.

◆ 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 ( )

Definition at line 216 of file KeyValueVector.h.

+ Here is the caller graph for this function:

◆ 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

Definition at line 230 of file KeyValueVector.h.

◆ has()

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

Definition at line 193 of file KeyValueVector.h.

+ Here is the caller graph for this function:

◆ index()

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

Definition at line 108 of file KeyValueVector.h.

◆ indices()

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

Definition at line 172 of file KeyValueVector.h.

◆ keys()

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

Definition at line 179 of file KeyValueVector.h.

◆ size()

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

Definition at line 158 of file KeyValueVector.h.

+ Here is the caller graph for this function:

◆ values()

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

Definition at line 165 of file KeyValueVector.h.

+ Here is the caller graph for this function:

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