COIN-OR::LEMON - Graph Library

Changes in / [573:37216ca5b9c6:571:d5c39e9d1a4e] in lemon-main


Ignore:
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • lemon/maps.h

    r572 r559  
    18331833  /// \c GR::Edge).
    18341834  ///
    1835   /// \see RangeIdMap
     1835  /// \see DescriptorMap
    18361836  template <typename GR, typename K>
    18371837  class IdMap : public MapBase<K, int> {
     
    18991899
    19001900
    1901   /// \brief General cross reference graph map type.
     1901  /// \brief General invertable graph map type.
    19021902
    19031903  /// This class provides simple invertable graph maps.
     
    19161916  /// \see IterableValueMap
    19171917  template <typename GR, typename K, typename V>
    1918   class CrossRefMap
     1918  class InvertableMap
    19191919    : protected ItemSetTraits<GR, K>::template Map<V>::Type {
    19201920  private:
     
    19281928  public:
    19291929
    1930     /// The graph type of CrossRefMap.
     1930    /// The graph type of InvertableMap.
    19311931    typedef GR Graph;
    1932     /// The key type of CrossRefMap (\c Node, \c Arc or \c Edge).
     1932    /// The key type of InvertableMap (\c Node, \c Arc or \c Edge).
    19331933    typedef K Item;
    1934     /// The key type of CrossRefMap (\c Node, \c Arc or \c Edge).
     1934    /// The key type of InvertableMap (\c Node, \c Arc or \c Edge).
    19351935    typedef K Key;
    1936     /// The value type of CrossRefMap.
     1936    /// The value type of InvertableMap.
    19371937    typedef V Value;
    19381938
    19391939    /// \brief Constructor.
    19401940    ///
    1941     /// Construct a new CrossRefMap for the given graph.
    1942     explicit CrossRefMap(const Graph& graph) : Map(graph) {}
     1941    /// Construct a new InvertableMap for the given graph.
     1942    explicit InvertableMap(const Graph& graph) : Map(graph) {}
    19431943
    19441944    /// \brief Forward iterator for values.
     
    19491949    class ValueIterator
    19501950      : public std::iterator<std::forward_iterator_tag, Value> {
    1951       friend class CrossRefMap;
     1951      friend class InvertableMap;
    19521952    private:
    19531953      ValueIterator(typename Container::const_iterator _it)
     
    20732073      ///
    20742074      /// Constructor of the InverseMap.
    2075       explicit InverseMap(const CrossRefMap& inverted)
     2075      explicit InverseMap(const InvertableMap& inverted)
    20762076        : _inverted(inverted) {}
    20772077
    20782078      /// The value type of the InverseMap.
    2079       typedef typename CrossRefMap::Key Value;
     2079      typedef typename InvertableMap::Key Value;
    20802080      /// The key type of the InverseMap.
    2081       typedef typename CrossRefMap::Value Key;
     2081      typedef typename InvertableMap::Value Key;
    20822082
    20832083      /// \brief Subscript operator.
     
    20902090
    20912091    private:
    2092       const CrossRefMap& _inverted;
     2092      const InvertableMap& _inverted;
    20932093    };
    20942094
     
    21022102  };
    21032103
    2104   /// \brief Provides continuous and unique ID for the
    2105   /// items of a graph.
    2106   ///
    2107   /// RangeIdMap provides a unique and continuous
    2108   /// ID for each item of a given type (\c Node, \c Arc or
     2104  /// \brief Provides a mutable, continuous and unique descriptor for each
     2105  /// item in a graph.
     2106  ///
     2107  /// DescriptorMap provides a unique and continuous (but mutable)
     2108  /// descriptor (id) for each item of the same type (\c Node, \c Arc or
    21092109  /// \c Edge) in a graph. This id is
    21102110  ///  - \b unique: different items get different ids,
    21112111  ///  - \b continuous: the range of the ids is the set of integers
    21122112  ///    between 0 and \c n-1, where \c n is the number of the items of
    2113   ///    this type (\c Node, \c Arc or \c Edge).
    2114   ///  - So, the ids can change when deleting an item of the same type.
     2113  ///    this type (\c Node, \c Arc or \c Edge). So the id of an item can
     2114  ///    change if you delete an other item of the same type, i.e. this
     2115  ///    id is mutable.
    21152116  ///
    21162117  /// Thus this id is not (necessarily) the same as what can get using
     
    21252126  /// \see IdMap
    21262127  template <typename GR, typename K>
    2127   class RangeIdMap
     2128  class DescriptorMap
    21282129    : protected ItemSetTraits<GR, K>::template Map<int>::Type {
    21292130
     
    21312132
    21322133  public:
    2133     /// The graph type of RangeIdMap.
     2134    /// The graph type of DescriptorMap.
    21342135    typedef GR Graph;
    2135     /// The key type of RangeIdMap (\c Node, \c Arc or \c Edge).
     2136    /// The key type of DescriptorMap (\c Node, \c Arc or \c Edge).
    21362137    typedef K Item;
    2137     /// The key type of RangeIdMap (\c Node, \c Arc or \c Edge).
     2138    /// The key type of DescriptorMap (\c Node, \c Arc or \c Edge).
    21382139    typedef K Key;
    2139     /// The value type of RangeIdMap.
     2140    /// The value type of DescriptorMap.
    21402141    typedef int Value;
    21412142
    21422143    /// \brief Constructor.
    21432144    ///
    2144     /// Constructor.
    2145     explicit RangeIdMap(const Graph& gr) : Map(gr) {
     2145    /// Constructor for descriptor map.
     2146    explicit DescriptorMap(const Graph& gr) : Map(gr) {
    21462147      Item it;
    21472148      const typename Map::Notifier* nf = Map::notifier();
     
    22442245    }
    22452246
    2246     /// \brief Gives back the \e RangeId of the item
    2247     ///
    2248     /// Gives back the \e RangeId of the item.
     2247    /// \brief Gives back the \e descriptor of the item.
     2248    ///
     2249    /// Gives back the mutable and unique \e descriptor of the map.
    22492250    int operator[](const Item& item) const {
    22502251      return Map::operator[](item);
    22512252    }
    22522253
    2253     /// \brief Gives back the item belonging to a \e RangeId
    2254     /// 
    2255     /// Gives back the item belonging to a \e RangeId.
     2254    /// \brief Gives back the item by its descriptor.
     2255    ///
     2256    /// Gives back th item by its descriptor.
    22562257    Item operator()(int id) const {
    22572258      return _inv_map[id];
     
    22652266  public:
    22662267
    2267     /// \brief The inverse map type of RangeIdMap.
    2268     ///
    2269     /// The inverse map type of RangeIdMap.
     2268    /// \brief The inverse map type of DescriptorMap.
     2269    ///
     2270    /// The inverse map type of DescriptorMap.
    22702271    class InverseMap {
    22712272    public:
     
    22732274      ///
    22742275      /// Constructor of the InverseMap.
    2275       explicit InverseMap(const RangeIdMap& inverted)
     2276      explicit InverseMap(const DescriptorMap& inverted)
    22762277        : _inverted(inverted) {}
    22772278
    22782279
    22792280      /// The value type of the InverseMap.
    2280       typedef typename RangeIdMap::Key Value;
     2281      typedef typename DescriptorMap::Key Value;
    22812282      /// The key type of the InverseMap.
    2282       typedef typename RangeIdMap::Value Key;
     2283      typedef typename DescriptorMap::Value Key;
    22832284
    22842285      /// \brief Subscript operator.
     
    22982299
    22992300    private:
    2300       const RangeIdMap& _inverted;
     2301      const DescriptorMap& _inverted;
    23012302    };
    23022303
  • test/graph_utils_test.cc

    r572 r440  
    3939      digraph.addNode();
    4040    }
    41     RangeIdMap<Digraph, Node> nodes(digraph);
    42     typename RangeIdMap<Digraph, Node>::InverseMap invNodes(nodes);
     41    DescriptorMap<Digraph, Node> nodes(digraph);
     42    typename DescriptorMap<Digraph, Node>::InverseMap invNodes(nodes);
    4343    for (int i = 0; i < 100; ++i) {
    4444      int src = rnd[invNodes.size()];
     
    4747    }
    4848    typename Digraph::template ArcMap<bool> found(digraph, false);
    49     RangeIdMap<Digraph, Arc> arcs(digraph);
     49    DescriptorMap<Digraph, Arc> arcs(digraph);
    5050    for (NodeIt src(digraph); src != INVALID; ++src) {
    5151      for (NodeIt trg(digraph); trg != INVALID; ++trg) {
     
    114114    graph.addNode();
    115115  }
    116   RangeIdMap<Graph, Node> nodes(graph);
    117   typename RangeIdMap<Graph, Node>::InverseMap invNodes(nodes);
     116  DescriptorMap<Graph, Node> nodes(graph);
     117  typename DescriptorMap<Graph, Node>::InverseMap invNodes(nodes);
    118118  for (int i = 0; i < 100; ++i) {
    119119    int src = rnd[invNodes.size()];
     
    122122  }
    123123  typename Graph::template EdgeMap<int> found(graph, 0);
    124   RangeIdMap<Graph, Edge> edges(graph);
     124  DescriptorMap<Graph, Edge> edges(graph);
    125125  for (NodeIt src(graph); src != INVALID; ++src) {
    126126    for (NodeIt trg(graph); trg != INVALID; ++trg) {
Note: See TracChangeset for help on using the changeset viewer.