gravatar
alpar (Alpar Juttner)
alpar@cs.elte.hu
DescriptorMap->RangeIdMap, InvertableMap->CrossRefMap (#160)
0 2 0
default
2 files changed with 44 insertions and 45 deletions:
↑ Collapse diff ↑
Ignore white space 4 line context
... ...
@@ -1833,5 +1833,5 @@
1833 1833
  /// \c GR::Edge).
1834 1834
  ///
1835
  /// \see DescriptorMap
1835
  /// \see RangeIdMap
1836 1836
  template <typename GR, typename K>
1837 1837
  class IdMap : public MapBase<K, int> {
... ...
@@ -1899,5 +1899,5 @@
1899 1899

	
1900 1900

	
1901
  /// \brief General invertable graph map type.
1901
  /// \brief General cross reference graph map type.
1902 1902

	
1903 1903
  /// This class provides simple invertable graph maps.
... ...
@@ -1916,5 +1916,5 @@
1916 1916
  /// \see IterableValueMap
1917 1917
  template <typename GR, typename K, typename V>
1918
  class InvertableMap
1918
  class CrossRefMap
1919 1919
    : protected ItemSetTraits<GR, K>::template Map<V>::Type {
1920 1920
  private:
... ...
@@ -1928,17 +1928,17 @@
1928 1928
  public:
1929 1929

	
1930
    /// The graph type of InvertableMap.
1930
    /// The graph type of CrossRefMap.
1931 1931
    typedef GR Graph;
1932
    /// The key type of InvertableMap (\c Node, \c Arc or \c Edge).
1932
    /// The key type of CrossRefMap (\c Node, \c Arc or \c Edge).
1933 1933
    typedef K Item;
1934
    /// The key type of InvertableMap (\c Node, \c Arc or \c Edge).
1934
    /// The key type of CrossRefMap (\c Node, \c Arc or \c Edge).
1935 1935
    typedef K Key;
1936
    /// The value type of InvertableMap.
1936
    /// The value type of CrossRefMap.
1937 1937
    typedef V Value;
1938 1938

	
1939 1939
    /// \brief Constructor.
1940 1940
    ///
1941
    /// Construct a new InvertableMap for the given graph.
1942
    explicit InvertableMap(const Graph& graph) : Map(graph) {}
1941
    /// Construct a new CrossRefMap for the given graph.
1942
    explicit CrossRefMap(const Graph& graph) : Map(graph) {}
1943 1943

	
1944 1944
    /// \brief Forward iterator for values.
... ...
@@ -1949,5 +1949,5 @@
1949 1949
    class ValueIterator
1950 1950
      : public std::iterator<std::forward_iterator_tag, Value> {
1951
      friend class InvertableMap;
1951
      friend class CrossRefMap;
1952 1952
    private:
1953 1953
      ValueIterator(typename Container::const_iterator _it)
... ...
@@ -2073,11 +2073,11 @@
2073 2073
      ///
2074 2074
      /// Constructor of the InverseMap.
2075
      explicit InverseMap(const InvertableMap& inverted)
2075
      explicit InverseMap(const CrossRefMap& inverted)
2076 2076
        : _inverted(inverted) {}
2077 2077

	
2078 2078
      /// The value type of the InverseMap.
2079
      typedef typename InvertableMap::Key Value;
2079
      typedef typename CrossRefMap::Key Value;
2080 2080
      /// The key type of the InverseMap.
2081
      typedef typename InvertableMap::Value Key;
2081
      typedef typename CrossRefMap::Value Key;
2082 2082

	
2083 2083
      /// \brief Subscript operator.
... ...
@@ -2090,5 +2090,5 @@
2090 2090

	
2091 2091
    private:
2092
      const InvertableMap& _inverted;
2092
      const CrossRefMap& _inverted;
2093 2093
    };
2094 2094

	
... ...
@@ -2102,16 +2102,15 @@
2102 2102
  };
2103 2103

	
2104
  /// \brief Provides a mutable, continuous and unique descriptor for each
2105
  /// item in a graph.
2104
  /// \brief Provides continuous and unique ID for the
2105
  /// items of a graph.
2106 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
2107
  /// RangeIdMap provides a unique and continuous
2108
  /// ID for each item of a given type (\c Node, \c Arc or
2109 2109
  /// \c Edge) in a graph. This id is
2110 2110
  ///  - \b unique: different items get different ids,
2111 2111
  ///  - \b continuous: the range of the ids is the set of integers
2112 2112
  ///    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). 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.
2113
  ///    this type (\c Node, \c Arc or \c Edge).
2114
  ///  - So, the ids can change when deleting an item of the same type.
2116 2115
  ///
2117 2116
  /// Thus this id is not (necessarily) the same as what can get using
... ...
@@ -2126,5 +2125,5 @@
2126 2125
  /// \see IdMap
2127 2126
  template <typename GR, typename K>
2128
  class DescriptorMap
2127
  class RangeIdMap
2129 2128
    : protected ItemSetTraits<GR, K>::template Map<int>::Type {
2130 2129

	
... ...
@@ -2132,17 +2131,17 @@
2132 2131

	
2133 2132
  public:
2134
    /// The graph type of DescriptorMap.
2133
    /// The graph type of RangeIdMap.
2135 2134
    typedef GR Graph;
2136
    /// The key type of DescriptorMap (\c Node, \c Arc or \c Edge).
2135
    /// The key type of RangeIdMap (\c Node, \c Arc or \c Edge).
2137 2136
    typedef K Item;
2138
    /// The key type of DescriptorMap (\c Node, \c Arc or \c Edge).
2137
    /// The key type of RangeIdMap (\c Node, \c Arc or \c Edge).
2139 2138
    typedef K Key;
2140
    /// The value type of DescriptorMap.
2139
    /// The value type of RangeIdMap.
2141 2140
    typedef int Value;
2142 2141

	
2143 2142
    /// \brief Constructor.
2144 2143
    ///
2145
    /// Constructor for descriptor map.
2146
    explicit DescriptorMap(const Graph& gr) : Map(gr) {
2144
    /// Constructor.
2145
    explicit RangeIdMap(const Graph& gr) : Map(gr) {
2147 2146
      Item it;
2148 2147
      const typename Map::Notifier* nf = Map::notifier();
... ...
@@ -2245,14 +2244,14 @@
2245 2244
    }
2246 2245

	
2247
    /// \brief Gives back the \e descriptor of the item.
2246
    /// \brief Gives back the \e RangeId of the item
2248 2247
    ///
2249
    /// Gives back the mutable and unique \e descriptor of the map.
2248
    /// Gives back the \e RangeId of the item.
2250 2249
    int operator[](const Item& item) const {
2251 2250
      return Map::operator[](item);
2252 2251
    }
2253 2252

	
2254
    /// \brief Gives back the item by its descriptor.
2255
    ///
2256
    /// Gives back th item by its descriptor.
2253
    /// \brief Gives back the item belonging to a \e RangeId
2254
    /// 
2255
    /// Gives back the item belonging to a \e RangeId.
2257 2256
    Item operator()(int id) const {
2258 2257
      return _inv_map[id];
... ...
@@ -2266,7 +2265,7 @@
2266 2265
  public:
2267 2266

	
2268
    /// \brief The inverse map type of DescriptorMap.
2267
    /// \brief The inverse map type of RangeIdMap.
2269 2268
    ///
2270
    /// The inverse map type of DescriptorMap.
2269
    /// The inverse map type of RangeIdMap.
2271 2270
    class InverseMap {
2272 2271
    public:
... ...
@@ -2274,12 +2273,12 @@
2274 2273
      ///
2275 2274
      /// Constructor of the InverseMap.
2276
      explicit InverseMap(const DescriptorMap& inverted)
2275
      explicit InverseMap(const RangeIdMap& inverted)
2277 2276
        : _inverted(inverted) {}
2278 2277

	
2279 2278

	
2280 2279
      /// The value type of the InverseMap.
2281
      typedef typename DescriptorMap::Key Value;
2280
      typedef typename RangeIdMap::Key Value;
2282 2281
      /// The key type of the InverseMap.
2283
      typedef typename DescriptorMap::Value Key;
2282
      typedef typename RangeIdMap::Value Key;
2284 2283

	
2285 2284
      /// \brief Subscript operator.
... ...
@@ -2299,5 +2298,5 @@
2299 2298

	
2300 2299
    private:
2301
      const DescriptorMap& _inverted;
2300
      const RangeIdMap& _inverted;
2302 2301
    };
2303 2302

	
Ignore white space 4 line context
... ...
@@ -39,6 +39,6 @@
39 39
      digraph.addNode();
40 40
    }
41
    DescriptorMap<Digraph, Node> nodes(digraph);
42
    typename DescriptorMap<Digraph, Node>::InverseMap invNodes(nodes);
41
    RangeIdMap<Digraph, Node> nodes(digraph);
42
    typename RangeIdMap<Digraph, Node>::InverseMap invNodes(nodes);
43 43
    for (int i = 0; i < 100; ++i) {
44 44
      int src = rnd[invNodes.size()];
... ...
@@ -47,5 +47,5 @@
47 47
    }
48 48
    typename Digraph::template ArcMap<bool> found(digraph, false);
49
    DescriptorMap<Digraph, Arc> arcs(digraph);
49
    RangeIdMap<Digraph, Arc> arcs(digraph);
50 50
    for (NodeIt src(digraph); src != INVALID; ++src) {
51 51
      for (NodeIt trg(digraph); trg != INVALID; ++trg) {
... ...
@@ -114,6 +114,6 @@
114 114
    graph.addNode();
115 115
  }
116
  DescriptorMap<Graph, Node> nodes(graph);
117
  typename DescriptorMap<Graph, Node>::InverseMap invNodes(nodes);
116
  RangeIdMap<Graph, Node> nodes(graph);
117
  typename RangeIdMap<Graph, Node>::InverseMap invNodes(nodes);
118 118
  for (int i = 0; i < 100; ++i) {
119 119
    int src = rnd[invNodes.size()];
... ...
@@ -122,5 +122,5 @@
122 122
  }
123 123
  typename Graph::template EdgeMap<int> found(graph, 0);
124
  DescriptorMap<Graph, Edge> edges(graph);
124
  RangeIdMap<Graph, Edge> edges(graph);
125 125
  for (NodeIt src(graph); src != INVALID; ++src) {
126 126
    for (NodeIt trg(graph); trg != INVALID; ++trg) {
0 comments (0 inline)