Index: lemon/maps.h
===================================================================
--- lemon/maps.h	(revision 314)
+++ lemon/maps.h	(revision 324)
@@ -44,5 +44,5 @@
   class MapBase {
   public:
-    /// \brief The key type of the map.
+    /// \biref The key type of the map.
     typedef K Key;
     /// \brief The value type of the map.
@@ -74,7 +74,7 @@
   };
 
-  /// Returns a \c NullMap class
-
-  /// This function just returns a \c NullMap class.
+  /// Returns a \ref NullMap class
+
+  /// This function just returns a \ref NullMap class.
   /// \relates NullMap
   template <typename K, typename V>
@@ -89,5 +89,5 @@
   /// value to each key.
   ///
-  /// In other aspects it is equivalent to \c NullMap.
+  /// In other aspects it is equivalent to \ref NullMap.
   /// So it conforms the \ref concepts::ReadWriteMap "ReadWriteMap"
   /// concept, but it absorbs the data written to it.
@@ -134,7 +134,7 @@
   };
 
-  /// Returns a \c ConstMap class
-
-  /// This function just returns a \c ConstMap class.
+  /// Returns a \ref ConstMap class
+
+  /// This function just returns a \ref ConstMap class.
   /// \relates ConstMap
   template<typename K, typename V>
@@ -157,5 +157,5 @@
   /// value to each key.
   ///
-  /// In other aspects it is equivalent to \c NullMap.
+  /// In other aspects it is equivalent to \ref NullMap.
   /// So it conforms the \ref concepts::ReadWriteMap "ReadWriteMap"
   /// concept, but it absorbs the data written to it.
@@ -183,7 +183,7 @@
   };
 
-  /// Returns a \c ConstMap class with inlined constant value
-
-  /// This function just returns a \c ConstMap class with inlined
+  /// Returns a \ref ConstMap class with inlined constant value
+
+  /// This function just returns a \ref ConstMap class with inlined
   /// constant value.
   /// \relates ConstMap
@@ -213,7 +213,7 @@
   };
 
-  /// Returns an \c IdentityMap class
-
-  /// This function just returns an \c IdentityMap class.
+  /// Returns an \ref IdentityMap class
+
+  /// This function just returns an \ref IdentityMap class.
   /// \relates IdentityMap
   template<typename T>
@@ -229,5 +229,5 @@
   /// values to integer keys from the range <tt>[0..size-1]</tt>.
   /// It can be used with some data structures, for example
-  /// \c UnionFind, \c BinHeap, when the used items are small
+  /// \ref UnionFind, \ref BinHeap, when the used items are small
   /// integers. This map conforms the \ref concepts::ReferenceMap
   /// "ReferenceMap" concept.
@@ -269,5 +269,5 @@
       : _vector(vector.begin(), vector.end()) {}
 
-    /// Constructs the map from another \c RangeMap.
+    /// Constructs the map from another \ref RangeMap.
     template <typename V1>
     RangeMap(const RangeMap<V1> &c)
@@ -312,7 +312,7 @@
   };
 
-  /// Returns a \c RangeMap class
-
-  /// This function just returns a \c RangeMap class.
+  /// Returns a \ref RangeMap class
+
+  /// This function just returns a \ref RangeMap class.
   /// \relates RangeMap
   template<typename V>
@@ -321,8 +321,8 @@
   }
 
-  /// \brief Returns a \c RangeMap class created from an appropriate
+  /// \brief Returns a \ref RangeMap class created from an appropriate
   /// \c std::vector
 
-  /// This function just returns a \c RangeMap class created from an
+  /// This function just returns a \ref RangeMap class created from an
   /// appropriate \c std::vector.
   /// \relates RangeMap
@@ -389,5 +389,5 @@
       : _map(map.begin(), map.end()), _value(value) {}
 
-    /// \brief Constructs the map from another \c SparseMap.
+    /// \brief Constructs the map from another \ref SparseMap.
     template<typename V1, typename Comp1>
     SparseMap(const SparseMap<Key, V1, Comp1> &c)
@@ -434,7 +434,7 @@
   };
 
-  /// Returns a \c SparseMap class
-
-  /// This function just returns a \c SparseMap class with specified
+  /// Returns a \ref SparseMap class
+
+  /// This function just returns a \ref SparseMap class with specified
   /// default value.
   /// \relates SparseMap
@@ -449,8 +449,8 @@
   }
 
-  /// \brief Returns a \c SparseMap class created from an appropriate
+  /// \brief Returns a \ref SparseMap class created from an appropriate
   /// \c std::map
 
-  /// This function just returns a \c SparseMap class created from an
+  /// This function just returns a \ref SparseMap class created from an
   /// appropriate \c std::map.
   /// \relates SparseMap
@@ -502,7 +502,7 @@
   };
 
-  /// Returns a \c ComposeMap class
-
-  /// This function just returns a \c ComposeMap class.
+  /// Returns a \ref ComposeMap class
+
+  /// This function just returns a \ref ComposeMap class.
   ///
   /// If \c m1 and \c m2 are maps and the \c Value type of \c m2 is
@@ -557,7 +557,7 @@
   };
 
-  /// Returns a \c CombineMap class
-
-  /// This function just returns a \c CombineMap class.
+  /// Returns a \ref CombineMap class
+
+  /// This function just returns a \ref CombineMap class.
   ///
   /// For example, if \c m1 and \c m2 are both maps with \c double
@@ -626,7 +626,7 @@
   };
 
-  /// Returns a \c FunctorToMap class
-
-  /// This function just returns a \c FunctorToMap class.
+  /// Returns a \ref FunctorToMap class
+
+  /// This function just returns a \ref FunctorToMap class.
   ///
   /// This function is specialized for adaptable binary function
@@ -685,7 +685,7 @@
   };
 
-  /// Returns a \c MapToFunctor class
-
-  /// This function just returns a \c MapToFunctor class.
+  /// Returns a \ref MapToFunctor class
+
+  /// This function just returns a \ref MapToFunctor class.
   /// \relates MapToFunctor
   template<typename M>
@@ -724,7 +724,7 @@
   };
 
-  /// Returns a \c ConvertMap class
-
-  /// This function just returns a \c ConvertMap class.
+  /// Returns a \ref ConvertMap class
+
+  /// This function just returns a \ref ConvertMap class.
   /// \relates ConvertMap
   template<typename V, typename M>
@@ -764,7 +764,7 @@
   };
 
-  /// Returns a \c ForkMap class
-
-  /// This function just returns a \c ForkMap class.
+  /// Returns a \ref ForkMap class
+
+  /// This function just returns a \ref ForkMap class.
   /// \relates ForkMap
   template <typename M1, typename M2>
@@ -808,7 +808,7 @@
   };
 
-  /// Returns an \c AddMap class
-
-  /// This function just returns an \c AddMap class.
+  /// Returns an \ref AddMap class
+
+  /// This function just returns an \ref AddMap class.
   ///
   /// For example, if \c m1 and \c m2 are both maps with \c double
@@ -856,7 +856,7 @@
   };
 
-  /// Returns a \c SubMap class
-
-  /// This function just returns a \c SubMap class.
+  /// Returns a \ref SubMap class
+
+  /// This function just returns a \ref SubMap class.
   ///
   /// For example, if \c m1 and \c m2 are both maps with \c double
@@ -905,7 +905,7 @@
   };
 
-  /// Returns a \c MulMap class
-
-  /// This function just returns a \c MulMap class.
+  /// Returns a \ref MulMap class
+
+  /// This function just returns a \ref MulMap class.
   ///
   /// For example, if \c m1 and \c m2 are both maps with \c double
@@ -953,7 +953,7 @@
   };
 
-  /// Returns a \c DivMap class
-
-  /// This function just returns a \c DivMap class.
+  /// Returns a \ref DivMap class
+
+  /// This function just returns a \ref DivMap class.
   ///
   /// For example, if \c m1 and \c m2 are both maps with \c double
@@ -1039,7 +1039,7 @@
   };
 
-  /// Returns a \c ShiftMap class
-
-  /// This function just returns a \c ShiftMap class.
+  /// Returns a \ref ShiftMap class
+
+  /// This function just returns a \ref ShiftMap class.
   ///
   /// For example, if \c m is a map with \c double values and \c v is
@@ -1053,7 +1053,7 @@
   }
 
-  /// Returns a \c ShiftWriteMap class
-
-  /// This function just returns a \c ShiftWriteMap class.
+  /// Returns a \ref ShiftWriteMap class
+
+  /// This function just returns a \ref ShiftWriteMap class.
   ///
   /// For example, if \c m is a map with \c double values and \c v is
@@ -1141,7 +1141,7 @@
   };
 
-  /// Returns a \c ScaleMap class
-
-  /// This function just returns a \c ScaleMap class.
+  /// Returns a \ref ScaleMap class
+
+  /// This function just returns a \ref ScaleMap class.
   ///
   /// For example, if \c m is a map with \c double values and \c v is
@@ -1155,7 +1155,7 @@
   }
 
-  /// Returns a \c ScaleWriteMap class
-
-  /// This function just returns a \c ScaleWriteMap class.
+  /// Returns a \ref ScaleWriteMap class
+
+  /// This function just returns a \ref ScaleWriteMap class.
   ///
   /// For example, if \c m is a map with \c double values and \c v is
@@ -1241,7 +1241,7 @@
   };
 
-  /// Returns a \c NegMap class
-
-  /// This function just returns a \c NegMap class.
+  /// Returns a \ref NegMap class
+
+  /// This function just returns a \ref NegMap class.
   ///
   /// For example, if \c m is a map with \c double values, then
@@ -1254,7 +1254,7 @@
   }
 
-  /// Returns a \c NegWriteMap class
-
-  /// This function just returns a \c NegWriteMap class.
+  /// Returns a \ref NegWriteMap class
+
+  /// This function just returns a \ref NegWriteMap class.
   ///
   /// For example, if \c m is a map with \c double values, then
@@ -1297,7 +1297,7 @@
   };
 
-  /// Returns an \c AbsMap class
-
-  /// This function just returns an \c AbsMap class.
+  /// Returns an \ref AbsMap class
+
+  /// This function just returns an \ref AbsMap class.
   ///
   /// For example, if \c m is a map with \c double values, then
@@ -1346,7 +1346,7 @@
   };
 
-  /// Returns a \c TrueMap class
-
-  /// This function just returns a \c TrueMap class.
+  /// Returns a \ref TrueMap class
+
+  /// This function just returns a \ref TrueMap class.
   /// \relates TrueMap
   template<typename K>
@@ -1383,7 +1383,7 @@
   };
 
-  /// Returns a \c FalseMap class
-
-  /// This function just returns a \c FalseMap class.
+  /// Returns a \ref FalseMap class
+
+  /// This function just returns a \ref FalseMap class.
   /// \relates FalseMap
   template<typename K>
@@ -1430,7 +1430,7 @@
   };
 
-  /// Returns an \c AndMap class
-
-  /// This function just returns an \c AndMap class.
+  /// Returns an \ref AndMap class
+
+  /// This function just returns an \ref AndMap class.
   ///
   /// For example, if \c m1 and \c m2 are both maps with \c bool values,
@@ -1478,7 +1478,7 @@
   };
 
-  /// Returns an \c OrMap class
-
-  /// This function just returns an \c OrMap class.
+  /// Returns an \ref OrMap class
+
+  /// This function just returns an \ref OrMap class.
   ///
   /// For example, if \c m1 and \c m2 are both maps with \c bool values,
@@ -1545,7 +1545,7 @@
   };
 
-  /// Returns a \c NotMap class
-
-  /// This function just returns a \c NotMap class.
+  /// Returns a \ref NotMap class
+
+  /// This function just returns a \ref NotMap class.
   ///
   /// For example, if \c m is a map with \c bool values, then
@@ -1558,7 +1558,7 @@
   }
 
-  /// Returns a \c NotWriteMap class
-
-  /// This function just returns a \c NotWriteMap class.
+  /// Returns a \ref NotWriteMap class
+
+  /// This function just returns a \ref NotWriteMap class.
   ///
   /// For example, if \c m is a map with \c bool values, then
@@ -1606,7 +1606,7 @@
   };
 
-  /// Returns an \c EqualMap class
-
-  /// This function just returns an \c EqualMap class.
+  /// Returns an \ref EqualMap class
+
+  /// This function just returns an \ref EqualMap class.
   ///
   /// For example, if \c m1 and \c m2 are maps with keys and values of
@@ -1654,7 +1654,7 @@
   };
 
-  /// Returns an \c LessMap class
-
-  /// This function just returns an \c LessMap class.
+  /// Returns an \ref LessMap class
+
+  /// This function just returns an \ref LessMap class.
   ///
   /// For example, if \c m1 and \c m2 are maps with keys and values of
@@ -1683,9 +1683,4 @@
 
   }
-
-  /// @}
-
-  /// \addtogroup maps
-  /// @{
 
   /// \brief Writable bool map for logging each \c true assigned element
@@ -1751,7 +1746,7 @@
   };
 
-  /// Returns a \c LoggerBoolMap class
-
-  /// This function just returns a \c LoggerBoolMap class.
+  /// Returns a \ref LoggerBoolMap class
+
+  /// This function just returns a \ref LoggerBoolMap class.
   ///
   /// The most important usage of it is storing certain nodes or arcs
@@ -1773,5 +1768,5 @@
   /// \note LoggerBoolMap is just \ref concepts::WriteMap "writable", so
   /// it cannot be used when a readable map is needed, for example as
-  /// \c ReachedMap for \c Bfs, \c Dfs and \c Dijkstra algorithms.
+  /// \c ReachedMap for \ref Bfs, \ref Dfs and \ref Dijkstra algorithms.
   ///
   /// \relates LoggerBoolMap
@@ -1780,9 +1775,4 @@
     return LoggerBoolMap<Iterator>(it);
   }
-
-  /// @}
-
-  /// \addtogroup graph_maps
-  /// @{
 
   /// Provides an immutable and unique id for each item in the graph.
@@ -1858,405 +1848,4 @@
   };
 
-
-  /// \brief General invertable graph-map type.
-
-  /// This type provides simple invertable graph-maps.
-  /// The InvertableMap wraps an arbitrary ReadWriteMap
-  /// and if a key is set to a new value then store it
-  /// in the inverse map.
-  ///
-  /// The values of the map can be accessed
-  /// with stl compatible forward iterator.
-  ///
-  /// \tparam _Graph The graph type.
-  /// \tparam _Item The item type of the graph.
-  /// \tparam _Value The value type of the map.
-  ///
-  /// \see IterableValueMap
-  template <typename _Graph, typename _Item, typename _Value>
-  class InvertableMap
-    : protected ItemSetTraits<_Graph, _Item>::template Map<_Value>::Type {
-  private:
-
-    typedef typename ItemSetTraits<_Graph, _Item>::
-    template Map<_Value>::Type Map;
-    typedef _Graph Graph;
-
-    typedef std::map<_Value, _Item> Container;
-    Container _inv_map;
-
-  public:
-
-    /// The key type of InvertableMap (Node, Arc, Edge).
-    typedef typename Map::Key Key;
-    /// The value type of the InvertableMap.
-    typedef typename Map::Value Value;
-
-    /// \brief Constructor.
-    ///
-    /// Construct a new InvertableMap for the graph.
-    ///
-    explicit InvertableMap(const Graph& graph) : Map(graph) {}
-
-    /// \brief Forward iterator for values.
-    ///
-    /// This iterator is an stl compatible forward
-    /// iterator on the values of the map. The values can
-    /// be accessed in the [beginValue, endValue) range.
-    ///
-    class ValueIterator
-      : public std::iterator<std::forward_iterator_tag, Value> {
-      friend class InvertableMap;
-    private:
-      ValueIterator(typename Container::const_iterator _it)
-        : it(_it) {}
-    public:
-
-      ValueIterator() {}
-
-      ValueIterator& operator++() { ++it; return *this; }
-      ValueIterator operator++(int) {
-        ValueIterator tmp(*this);
-        operator++();
-        return tmp;
-      }
-
-      const Value& operator*() const { return it->first; }
-      const Value* operator->() const { return &(it->first); }
-
-      bool operator==(ValueIterator jt) const { return it == jt.it; }
-      bool operator!=(ValueIterator jt) const { return it != jt.it; }
-
-    private:
-      typename Container::const_iterator it;
-    };
-
-    /// \brief Returns an iterator to the first value.
-    ///
-    /// Returns an stl compatible iterator to the
-    /// first value of the map. The values of the
-    /// map can be accessed in the [beginValue, endValue)
-    /// range.
-    ValueIterator beginValue() const {
-      return ValueIterator(_inv_map.begin());
-    }
-
-    /// \brief Returns an iterator after the last value.
-    ///
-    /// Returns an stl compatible iterator after the
-    /// last value of the map. The values of the
-    /// map can be accessed in the [beginValue, endValue)
-    /// range.
-    ValueIterator endValue() const {
-      return ValueIterator(_inv_map.end());
-    }
-
-    /// \brief The setter function of the map.
-    ///
-    /// Sets the mapped value.
-    void set(const Key& key, const Value& val) {
-      Value oldval = Map::operator[](key);
-      typename Container::iterator it = _inv_map.find(oldval);
-      if (it != _inv_map.end() && it->second == key) {
-        _inv_map.erase(it);
-      }
-      _inv_map.insert(make_pair(val, key));
-      Map::set(key, val);
-    }
-
-    /// \brief The getter function of the map.
-    ///
-    /// It gives back the value associated with the key.
-    typename MapTraits<Map>::ConstReturnValue
-    operator[](const Key& key) const {
-      return Map::operator[](key);
-    }
-
-    /// \brief Gives back the item by its value.
-    ///
-    /// Gives back the item by its value.
-    Key operator()(const Value& key) const {
-      typename Container::const_iterator it = _inv_map.find(key);
-      return it != _inv_map.end() ? it->second : INVALID;
-    }
-
-  protected:
-
-    /// \brief Erase the key from the map.
-    ///
-    /// Erase the key to the map. It is called by the
-    /// \c AlterationNotifier.
-    virtual void erase(const Key& key) {
-      Value val = Map::operator[](key);
-      typename Container::iterator it = _inv_map.find(val);
-      if (it != _inv_map.end() && it->second == key) {
-        _inv_map.erase(it);
-      }
-      Map::erase(key);
-    }
-
-    /// \brief Erase more keys from the map.
-    ///
-    /// Erase more keys from the map. It is called by the
-    /// \c AlterationNotifier.
-    virtual void erase(const std::vector<Key>& keys) {
-      for (int i = 0; i < int(keys.size()); ++i) {
-        Value val = Map::operator[](keys[i]);
-        typename Container::iterator it = _inv_map.find(val);
-        if (it != _inv_map.end() && it->second == keys[i]) {
-          _inv_map.erase(it);
-        }
-      }
-      Map::erase(keys);
-    }
-
-    /// \brief Clear the keys from the map and inverse map.
-    ///
-    /// Clear the keys from the map and inverse map. It is called by the
-    /// \c AlterationNotifier.
-    virtual void clear() {
-      _inv_map.clear();
-      Map::clear();
-    }
-
-  public:
-
-    /// \brief The inverse map type.
-    ///
-    /// The inverse of this map. The subscript operator of the map
-    /// gives back always the item what was last assigned to the value.
-    class InverseMap {
-    public:
-      /// \brief Constructor of the InverseMap.
-      ///
-      /// Constructor of the InverseMap.
-      explicit InverseMap(const InvertableMap& inverted)
-        : _inverted(inverted) {}
-
-      /// The value type of the InverseMap.
-      typedef typename InvertableMap::Key Value;
-      /// The key type of the InverseMap.
-      typedef typename InvertableMap::Value Key;
-
-      /// \brief Subscript operator.
-      ///
-      /// Subscript operator. It gives back always the item
-      /// what was last assigned to the value.
-      Value operator[](const Key& key) const {
-        return _inverted(key);
-      }
-
-    private:
-      const InvertableMap& _inverted;
-    };
-
-    /// \brief It gives back the just readable inverse map.
-    ///
-    /// It gives back the just readable inverse map.
-    InverseMap inverse() const {
-      return InverseMap(*this);
-    }
-
-  };
-
-  /// \brief Provides a mutable, continuous and unique descriptor for each
-  /// item in the graph.
-  ///
-  /// The DescriptorMap class provides a unique and continuous (but mutable)
-  /// descriptor (id) for each item of the same type (e.g. node) in the
-  /// graph. This id is <ul><li>\b unique: different items (nodes) get
-  /// different ids <li>\b continuous: the range of the ids is the set of
-  /// integers between 0 and \c n-1, where \c n is the number of the items of
-  /// this type (e.g. nodes) (so the id of a node can change if you delete an
-  /// other node, i.e. this id is mutable).  </ul> This map can be inverted
-  /// with its member class \c InverseMap, or with the \c operator() member.
-  ///
-  /// \tparam _Graph The graph class the \c DescriptorMap belongs to.
-  /// \tparam _Item The Item is the Key of the Map. It may be Node, Arc or
-  /// Edge.
-  template <typename _Graph, typename _Item>
-  class DescriptorMap
-    : protected ItemSetTraits<_Graph, _Item>::template Map<int>::Type {
-
-    typedef _Item Item;
-    typedef typename ItemSetTraits<_Graph, _Item>::template Map<int>::Type Map;
-
-  public:
-    /// The graph class of DescriptorMap.
-    typedef _Graph Graph;
-
-    /// The key type of DescriptorMap (Node, Arc, Edge).
-    typedef typename Map::Key Key;
-    /// The value type of DescriptorMap.
-    typedef typename Map::Value Value;
-
-    /// \brief Constructor.
-    ///
-    /// Constructor for descriptor map.
-    explicit DescriptorMap(const Graph& _graph) : Map(_graph) {
-      Item it;
-      const typename Map::Notifier* nf = Map::notifier();
-      for (nf->first(it); it != INVALID; nf->next(it)) {
-        Map::set(it, _inv_map.size());
-        _inv_map.push_back(it);
-      }
-    }
-
-  protected:
-
-    /// \brief Add a new key to the map.
-    ///
-    /// Add a new key to the map. It is called by the
-    /// \c AlterationNotifier.
-    virtual void add(const Item& item) {
-      Map::add(item);
-      Map::set(item, _inv_map.size());
-      _inv_map.push_back(item);
-    }
-
-    /// \brief Add more new keys to the map.
-    ///
-    /// Add more new keys to the map. It is called by the
-    /// \c AlterationNotifier.
-    virtual void add(const std::vector<Item>& items) {
-      Map::add(items);
-      for (int i = 0; i < int(items.size()); ++i) {
-        Map::set(items[i], _inv_map.size());
-        _inv_map.push_back(items[i]);
-      }
-    }
-
-    /// \brief Erase the key from the map.
-    ///
-    /// Erase the key from the map. It is called by the
-    /// \c AlterationNotifier.
-    virtual void erase(const Item& item) {
-      Map::set(_inv_map.back(), Map::operator[](item));
-      _inv_map[Map::operator[](item)] = _inv_map.back();
-      _inv_map.pop_back();
-      Map::erase(item);
-    }
-
-    /// \brief Erase more keys from the map.
-    ///
-    /// Erase more keys from the map. It is called by the
-    /// \c AlterationNotifier.
-    virtual void erase(const std::vector<Item>& items) {
-      for (int i = 0; i < int(items.size()); ++i) {
-        Map::set(_inv_map.back(), Map::operator[](items[i]));
-        _inv_map[Map::operator[](items[i])] = _inv_map.back();
-        _inv_map.pop_back();
-      }
-      Map::erase(items);
-    }
-
-    /// \brief Build the unique map.
-    ///
-    /// Build the unique map. It is called by the
-    /// \c AlterationNotifier.
-    virtual void build() {
-      Map::build();
-      Item it;
-      const typename Map::Notifier* nf = Map::notifier();
-      for (nf->first(it); it != INVALID; nf->next(it)) {
-        Map::set(it, _inv_map.size());
-        _inv_map.push_back(it);
-      }
-    }
-
-    /// \brief Clear the keys from the map.
-    ///
-    /// Clear the keys from the map. It is called by the
-    /// \c AlterationNotifier.
-    virtual void clear() {
-      _inv_map.clear();
-      Map::clear();
-    }
-
-  public:
-
-    /// \brief Returns the maximal value plus one.
-    ///
-    /// Returns the maximal value plus one in the map.
-    unsigned int size() const {
-      return _inv_map.size();
-    }
-
-    /// \brief Swaps the position of the two items in the map.
-    ///
-    /// Swaps the position of the two items in the map.
-    void swap(const Item& p, const Item& q) {
-      int pi = Map::operator[](p);
-      int qi = Map::operator[](q);
-      Map::set(p, qi);
-      _inv_map[qi] = p;
-      Map::set(q, pi);
-      _inv_map[pi] = q;
-    }
-
-    /// \brief Gives back the \e descriptor of the item.
-    ///
-    /// Gives back the mutable and unique \e descriptor of the map.
-    int operator[](const Item& item) const {
-      return Map::operator[](item);
-    }
-
-    /// \brief Gives back the item by its descriptor.
-    ///
-    /// Gives back th item by its descriptor.
-    Item operator()(int id) const {
-      return _inv_map[id];
-    }
-
-  private:
-
-    typedef std::vector<Item> Container;
-    Container _inv_map;
-
-  public:
-    /// \brief The inverse map type of DescriptorMap.
-    ///
-    /// The inverse map type of DescriptorMap.
-    class InverseMap {
-    public:
-      /// \brief Constructor of the InverseMap.
-      ///
-      /// Constructor of the InverseMap.
-      explicit InverseMap(const DescriptorMap& inverted)
-        : _inverted(inverted) {}
-
-
-      /// The value type of the InverseMap.
-      typedef typename DescriptorMap::Key Value;
-      /// The key type of the InverseMap.
-      typedef typename DescriptorMap::Value Key;
-
-      /// \brief Subscript operator.
-      ///
-      /// Subscript operator. It gives back the item
-      /// that the descriptor belongs to currently.
-      Value operator[](const Key& key) const {
-        return _inverted(key);
-      }
-
-      /// \brief Size of the map.
-      ///
-      /// Returns the size of the map.
-      unsigned int size() const {
-        return _inverted.size();
-      }
-
-    private:
-      const DescriptorMap& _inverted;
-    };
-
-    /// \brief Gives back the inverse of the map.
-    ///
-    /// Gives back the inverse of the map.
-    const InverseMap inverse() const {
-      return InverseMap(*this);
-    }
-  };
-
   /// \brief Returns the source of the given arc.
   ///
@@ -2273,5 +1862,5 @@
     ///
     /// Constructor
-    /// \param digraph The digraph that the map belongs to.
+    /// \param _digraph The digraph that the map belongs to.
     explicit SourceMap(const Digraph& digraph) : _digraph(digraph) {}
 
@@ -2289,7 +1878,7 @@
   };
 
-  /// \brief Returns a \c SourceMap class.
-  ///
-  /// This function just returns an \c SourceMap class.
+  /// \brief Returns a \ref SourceMap class.
+  ///
+  /// This function just returns an \ref SourceMap class.
   /// \relates SourceMap
   template <typename Digraph>
@@ -2312,5 +1901,5 @@
     ///
     /// Constructor
-    /// \param digraph The digraph that the map belongs to.
+    /// \param _digraph The digraph that the map belongs to.
     explicit TargetMap(const Digraph& digraph) : _digraph(digraph) {}
 
@@ -2328,7 +1917,7 @@
   };
 
-  /// \brief Returns a \c TargetMap class.
-  ///
-  /// This function just returns a \c TargetMap class.
+  /// \brief Returns a \ref TargetMap class.
+  ///
+  /// This function just returns a \ref TargetMap class.
   /// \relates TargetMap
   template <typename Digraph>
@@ -2351,5 +1940,5 @@
     ///
     /// Constructor
-    /// \param graph The graph that the map belongs to.
+    /// \param _graph The graph that the map belongs to.
     explicit ForwardMap(const Graph& graph) : _graph(graph) {}
 
@@ -2367,7 +1956,7 @@
   };
 
-  /// \brief Returns a \c ForwardMap class.
-  ///
-  /// This function just returns an \c ForwardMap class.
+  /// \brief Returns a \ref ForwardMap class.
+  ///
+  /// This function just returns an \ref ForwardMap class.
   /// \relates ForwardMap
   template <typename Graph>
@@ -2390,5 +1979,5 @@
     ///
     /// Constructor
-    /// \param graph The graph that the map belongs to.
+    /// \param _graph The graph that the map belongs to.
     explicit BackwardMap(const Graph& graph) : _graph(graph) {}
 
@@ -2406,7 +1995,7 @@
   };
 
-  /// \brief Returns a \c BackwardMap class
-
-  /// This function just returns a \c BackwardMap class.
+  /// \brief Returns a \ref BackwardMap class
+
+  /// This function just returns a \ref BackwardMap class.
   /// \relates BackwardMap
   template <typename Graph>
