template<typename KEY, typename VALUE>
class mrpt::utils::bimap< KEY, VALUE >
A bidirectional version of std::map, declared as bimap<KEY,VALUE> and which actually contains two std::map's, one for keys and another for values.
To use this class, insert new pairs KEY<->VALUE with bimap::insert. Then, you can access the KEY->VALUE map with bimap::direct(), and the VALUE->KEY map with bimap::inverse(). The consistency of the two internal maps is assured at any time.
- Note
- This class can be accessed through iterators to the map KEY->VALUE only.
-
Both typenames KEY and VALUE must be suitable for being employed as keys in a std::map, i.e. they must be comparable through a "< operator".
-
Defined in #include <mrpt/utils/bimap.h>
Definition at line 28 of file bimap.h.
|
| | bimap () |
| | Default constructor - does nothing. More...
|
| |
| const_iterator | begin () const |
| |
| iterator | begin () |
| |
| const_iterator | end () const |
| |
| iterator | end () |
| |
| const_iterator_inverse | inverse_begin () const |
| |
| iterator_inverse | inverse_begin () |
| |
| const_iterator_inverse | inverse_end () const |
| |
| iterator_inverse | inverse_end () |
| |
| size_t | size () const |
| |
| bool | empty () const |
| |
| const std::map< KEY, VALUE > & | getDirectMap () const |
| | Return a read-only reference to the internal map KEY->VALUES. More...
|
| |
| const std::map< VALUE, KEY > & | getInverseMap () const |
| | Return a read-only reference to the internal map KEY->VALUES. More...
|
| |
| void | clear () |
| |
| void | insert (const KEY &k, const VALUE &v) |
| | Insert a new pair KEY<->VALUE in the bi-map. More...
|
| |
| bool | direct (const KEY &k, VALUE &out_v) const |
| | Get the value associated the given key, KEY->VALUE, returning false if not present. More...
|
| |
| bool | hasKey (const KEY &k) const |
| | Return true if the given key 'k' is in the bi-map. More...
|
| |
| bool | hasValue (const VALUE &v) const |
| | Return true if the given value 'v' is in the bi-map. More...
|
| |
| VALUE | direct (const KEY &k) const |
| | Get the value associated the given key, KEY->VALUE, raising an exception if not present. More...
|
| |
| bool | inverse (const VALUE &v, KEY &out_k) const |
| | Get the key associated the given value, VALUE->KEY, returning false if not present. More...
|
| |
| KEY | inverse (const VALUE &v) const |
| | Get the key associated the given value, VALUE->KEY, raising an exception if not present. More...
|
| |
| const_iterator | find_key (const KEY &k) const |
| |
| iterator | find_key (const KEY &k) |
| |
| const_iterator_inverse | find_value (const VALUE &v) const |
| |
| iterator_inverse | find_value (const VALUE &v) |
| |