Flow123d  release_3.0.0-1073-g8f35d56
Public Member Functions | Private Attributes | List of all members
BidirectionalMap< T > Class Template Reference

Bidirectional map templated by <T, unsigned int>. More...

#include <bidirectional_map.hh>

Collaboration diagram for BidirectionalMap< T >:
Collaboration graph
[legend]

Public Member Functions

 BidirectionalMap ()
 Constructor. More...
 
unsigned int size () const
 Return size of map. More...
 
void set_item (T val, unsigned int pos)
 
unsigned int add_item (T val)
 Add new item at the end position of map. More...
 
int get_position (T val) const
 Return position of item of given value. More...
 
void reinit (unsigned int init_size=0)
 Reset data of map, allow reserve size. More...
 
operator[] (unsigned int pos) const
 Return value on given position. More...
 

Private Attributes

std::vector< T > vals_vec_
 Space to save values. More...
 
std::map< T, unsigned int > vals_map_
 Maps values to indexes into vals_vec_. More...
 

Detailed Description

template<typename T>
class BidirectionalMap< T >

Bidirectional map templated by <T, unsigned int>.

Store pairs of value and its position (index) and allow bidirectional search. Items of both (values, positions) must be unique.

Definition at line 33 of file bidirectional_map.hh.

Constructor & Destructor Documentation

template<typename T >
BidirectionalMap< T >::BidirectionalMap ( )
inline

Constructor.

Definition at line 69 of file bidirectional_map.hh.

Member Function Documentation

template<typename T>
unsigned int BidirectionalMap< T >::add_item ( val)
inline

Add new item at the end position of map.

Definition at line 86 of file bidirectional_map.hh.

Here is the caller graph for this function:

template<typename T>
int BidirectionalMap< T >::get_position ( val) const
inline

Return position of item of given value.

Definition at line 94 of file bidirectional_map.hh.

template<typename T >
T BidirectionalMap< T >::operator[] ( unsigned int  pos) const
inline

Return value on given position.

Definition at line 108 of file bidirectional_map.hh.

template<typename T >
void BidirectionalMap< T >::reinit ( unsigned int  init_size = 0)
inline

Reset data of map, allow reserve size.

Definition at line 101 of file bidirectional_map.hh.

Here is the caller graph for this function:

template<typename T>
void BidirectionalMap< T >::set_item ( val,
unsigned int  pos 
)
inline

Set value of given position.

Position must be in interval set in reinit method <0, init_size-1>. Element on every position can be set only once.

Definition at line 78 of file bidirectional_map.hh.

Here is the caller graph for this function:

template<typename T >
unsigned int BidirectionalMap< T >::size ( ) const
inline

Return size of map.

Definition at line 73 of file bidirectional_map.hh.

Here is the caller graph for this function:

Member Data Documentation

template<typename T>
std::map<T, unsigned int> BidirectionalMap< T >::vals_map_
private

Maps values to indexes into vals_vec_.

Definition at line 64 of file bidirectional_map.hh.

template<typename T>
std::vector<T> BidirectionalMap< T >::vals_vec_
private

Space to save values.

Definition at line 63 of file bidirectional_map.hh.


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