All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
List of all members | Classes | Public Types | Public Member Functions | Protected Member Functions
RangeIdMap< GR, K > Class Template Reference

Detailed Description

template<typename GR, typename K>
class lemon::RangeIdMap< GR, K >

RangeIdMap provides a unique and continuous ID for each item of a given type (Node, Arc or Edge) in a graph. This id is

Thus this id is not (necessarily) the same as what can get using the id() function of the graph or IdMap. This map can be inverted with its member class InverseMap, or with the operator() member.

Template Parameters
GRThe graph type.
KThe key type of the map (GR::Node, GR::Arc or GR::Edge).
See Also
IdMap

#include <lemon/maps.h>

Inherits Type< GR, K >.

Classes

class  InverseMap
 

Public Types

typedef GR Graph
 The graph type of RangeIdMap.
 
typedef K Item
 The key type of RangeIdMap (Node, Arc or Edge).
 
typedef K Key
 The key type of RangeIdMap (Node, Arc or Edge).
 
typedef int Value
 The value type of RangeIdMap.
 

Public Member Functions

 RangeIdMap (const Graph &gr)
 
unsigned int size () const
 Returns the maximal value plus one.
 
void swap (const Item &p, const Item &q)
 
int operator[] (const Item &item) const
 
Item operator() (int id) const
 
const InverseMap inverse () const
 

Protected Member Functions

virtual void add (const Item &item)
 Adds a new key to the map.
 
virtual void add (const std::vector< Item > &items)
 Add more new keys to the map.
 
virtual void erase (const Item &item)
 Erase the key from the map.
 
virtual void erase (const std::vector< Item > &items)
 Erase more keys from the map.
 
virtual void build ()
 Build the unique map.
 
virtual void clear ()
 Clear the keys from the map.
 

Constructor & Destructor Documentation

RangeIdMap ( const Graph gr)
inlineexplicit

Constructor.

Member Function Documentation

virtual void add ( const Item item)
inlineprotectedvirtual

Add a new key to the map. It is called by the AlterationNotifier.

virtual void add ( const std::vector< Item > &  items)
inlineprotectedvirtual

Add more new keys to the map. It is called by the AlterationNotifier.

virtual void erase ( const Item item)
inlineprotectedvirtual

Erase the key from the map. It is called by the AlterationNotifier.

virtual void erase ( const std::vector< Item > &  items)
inlineprotectedvirtual

Erase more keys from the map. It is called by the AlterationNotifier.

virtual void build ( )
inlineprotectedvirtual

Build the unique map. It is called by the AlterationNotifier.

virtual void clear ( )
inlineprotectedvirtual

Clear the keys from the map. It is called by the AlterationNotifier.

unsigned int size ( ) const
inline

Returns the maximal value plus one in the map.

void swap ( const Item p,
const Item q 
)
inline

Swaps the position of the two items in the map.

int operator[] ( const Item item) const
inline

Gives back the RangeId of the item.

Item operator() ( int  id) const
inline

Gives back the item belonging to a RangeId.

const InverseMap inverse ( ) const
inline

Gives back the inverse of the map.