Changes in lemon/bits/array_map.h [314:2cc60866a0c9:263:be8a861d3bb7] in lemon
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
lemon/bits/array_map.h
r314 r263 27 27 #include <lemon/concepts/maps.h> 28 28 29 // \ingroup graphbits30 // \file31 // \brief Graph map based on the array storage.29 /// \ingroup graphbits 30 /// \file 31 /// \brief Graph map based on the array storage. 32 32 33 33 namespace lemon { 34 34 35 // \ingroup graphbits36 // 37 // \brief Graph map based on the array storage.38 // 39 // The ArrayMap template class is graph map structure what40 // automatically updates the map when a key is added to or erased from41 // the map. This map uses the allocators to implement42 // the container functionality.43 // 44 // The template parameters are the Graph the current Item type and45 // the Value type of the map.35 /// \ingroup graphbits 36 /// 37 /// \brief Graph map based on the array storage. 38 /// 39 /// The ArrayMap template class is graph map structure what 40 /// automatically updates the map when a key is added to or erased from 41 /// the map. This map uses the allocators to implement 42 /// the container functionality. 43 /// 44 /// The template parameters are the Graph the current Item type and 45 /// the Value type of the map. 46 46 template <typename _Graph, typename _Item, typename _Value> 47 47 class ArrayMap 48 48 : public ItemSetTraits<_Graph, _Item>::ItemNotifier::ObserverBase { 49 49 public: 50 // The graph type of the maps.50 /// The graph type of the maps. 51 51 typedef _Graph Graph; 52 // The item type of the map.52 /// The item type of the map. 53 53 typedef _Item Item; 54 // The reference map tag.54 /// The reference map tag. 55 55 typedef True ReferenceMapTag; 56 56 57 // The key type of the maps.57 /// The key type of the maps. 58 58 typedef _Item Key; 59 // The value type of the map.59 /// The value type of the map. 60 60 typedef _Value Value; 61 61 62 // The const reference type of the map.62 /// The const reference type of the map. 63 63 typedef const _Value& ConstReference; 64 // The reference type of the map.64 /// The reference type of the map. 65 65 typedef _Value& Reference; 66 66 67 // The notifier type.67 /// The notifier type. 68 68 typedef typename ItemSetTraits<_Graph, _Item>::ItemNotifier Notifier; 69 69 70 // The MapBase of the Map which imlements the core regisitry function.70 /// The MapBase of the Map which imlements the core regisitry function. 71 71 typedef typename Notifier::ObserverBase Parent; 72 72 … … 76 76 public: 77 77 78 // \brief Graph initialized map constructor.79 // 80 // Graph initialized map constructor.78 /// \brief Graph initialized map constructor. 79 /// 80 /// Graph initialized map constructor. 81 81 explicit ArrayMap(const Graph& graph) { 82 82 Parent::attach(graph.notifier(Item())); … … 90 90 } 91 91 92 // \brief Constructor to use default value to initialize the map.93 // 94 // It constructs a map and initialize all of the the map.92 /// \brief Constructor to use default value to initialize the map. 93 /// 94 /// It constructs a map and initialize all of the the map. 95 95 ArrayMap(const Graph& graph, const Value& value) { 96 96 Parent::attach(graph.notifier(Item())); … … 105 105 106 106 private: 107 // \brief Constructor to copy a map of the same map type.108 // 109 // Constructor to copy a map of the same map type.107 /// \brief Constructor to copy a map of the same map type. 108 /// 109 /// Constructor to copy a map of the same map type. 110 110 ArrayMap(const ArrayMap& copy) : Parent() { 111 111 if (copy.attached()) { … … 123 123 } 124 124 125 // \brief Assign operator.126 // 127 // This operator assigns for each item in the map the128 // value mapped to the same item in the copied map.129 // The parameter map should be indiced with the same130 // itemset because this assign operator does not change131 // the container of the map.125 /// \brief Assign operator. 126 /// 127 /// This operator assigns for each item in the map the 128 /// value mapped to the same item in the copied map. 129 /// The parameter map should be indiced with the same 130 /// itemset because this assign operator does not change 131 /// the container of the map. 132 132 ArrayMap& operator=(const ArrayMap& cmap) { 133 133 return operator=<ArrayMap>(cmap); … … 135 135 136 136 137 // \brief Template assign operator.138 // 139 // The given parameter should be conform to the ReadMap140 // concecpt and could be indiced by the current item set of141 // the NodeMap. In this case the value for each item142 // is assigned by the value of the given ReadMap.137 /// \brief Template assign operator. 138 /// 139 /// The given parameter should be conform to the ReadMap 140 /// concecpt and could be indiced by the current item set of 141 /// the NodeMap. In this case the value for each item 142 /// is assigned by the value of the given ReadMap. 143 143 template <typename CMap> 144 144 ArrayMap& operator=(const CMap& cmap) { … … 153 153 154 154 public: 155 // \brief The destructor of the map.156 // 157 // The destructor of the map.155 /// \brief The destructor of the map. 156 /// 157 /// The destructor of the map. 158 158 virtual ~ArrayMap() { 159 159 if (attached()) { … … 171 171 public: 172 172 173 // \brief The subscript operator.174 // 175 // The subscript operator. The map can be subscripted by the176 // actual keys of the graph.173 /// \brief The subscript operator. 174 /// 175 /// The subscript operator. The map can be subscripted by the 176 /// actual keys of the graph. 177 177 Value& operator[](const Key& key) { 178 178 int id = Parent::notifier()->id(key); … … 180 180 } 181 181 182 // \brief The const subscript operator.183 // 184 // The const subscript operator. The map can be subscripted by the185 // actual keys of the graph.182 /// \brief The const subscript operator. 183 /// 184 /// The const subscript operator. The map can be subscripted by the 185 /// actual keys of the graph. 186 186 const Value& operator[](const Key& key) const { 187 187 int id = Parent::notifier()->id(key); … … 189 189 } 190 190 191 // \brief Setter function of the map.192 // 193 // Setter function of the map. Equivalent with map[key] = val.194 // This is a compatibility feature with the not dereferable maps.191 /// \brief Setter function of the map. 192 /// 193 /// Setter function of the map. Equivalent with map[key] = val. 194 /// This is a compatibility feature with the not dereferable maps. 195 195 void set(const Key& key, const Value& val) { 196 196 (*this)[key] = val; … … 199 199 protected: 200 200 201 // \brief Adds a new key to the map.202 // 203 // It adds a new key to the map. It called by the observer notifier204 // and it overrides the add() member function of the observer base.201 /// \brief Adds a new key to the map. 202 /// 203 /// It adds a new key to the map. It called by the observer notifier 204 /// and it overrides the add() member function of the observer base. 205 205 virtual void add(const Key& key) { 206 206 Notifier* nf = Parent::notifier(); … … 227 227 } 228 228 229 // \brief Adds more new keys to the map.230 // 231 // It adds more new keys to the map. It called by the observer notifier232 // and it overrides the add() member function of the observer base.229 /// \brief Adds more new keys to the map. 230 /// 231 /// It adds more new keys to the map. It called by the observer notifier 232 /// and it overrides the add() member function of the observer base. 233 233 virtual void add(const std::vector<Key>& keys) { 234 234 Notifier* nf = Parent::notifier(); … … 271 271 } 272 272 273 // \brief Erase a key from the map.274 // 275 // Erase a key from the map. It called by the observer notifier276 // and it overrides the erase() member function of the observer base.273 /// \brief Erase a key from the map. 274 /// 275 /// Erase a key from the map. It called by the observer notifier 276 /// and it overrides the erase() member function of the observer base. 277 277 virtual void erase(const Key& key) { 278 278 int id = Parent::notifier()->id(key); … … 280 280 } 281 281 282 // \brief Erase more keys from the map.283 // 284 // Erase more keys from the map. It called by the observer notifier285 // and it overrides the erase() member function of the observer base.282 /// \brief Erase more keys from the map. 283 /// 284 /// Erase more keys from the map. It called by the observer notifier 285 /// and it overrides the erase() member function of the observer base. 286 286 virtual void erase(const std::vector<Key>& keys) { 287 287 for (int i = 0; i < int(keys.size()); ++i) { … … 291 291 } 292 292 293 // \brief Buildes the map.294 // 295 // It buildes the map. It called by the observer notifier296 // and it overrides the build() member function of the observer base.293 /// \brief Buildes the map. 294 /// 295 /// It buildes the map. It called by the observer notifier 296 /// and it overrides the build() member function of the observer base. 297 297 virtual void build() { 298 298 Notifier* nf = Parent::notifier(); … … 305 305 } 306 306 307 // \brief Clear the map.308 // 309 // It erase all items from the map. It called by the observer notifier310 // and it overrides the clear() member function of the observer base.307 /// \brief Clear the map. 308 /// 309 /// It erase all items from the map. It called by the observer notifier 310 /// and it overrides the clear() member function of the observer base. 311 311 virtual void clear() { 312 312 Notifier* nf = Parent::notifier();
Note: See TracChangeset
for help on using the changeset viewer.