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