COIN-OR::LEMON - Graph Library

Changeset 1703:eb90e3d6bddc in lemon-0.x for lemon/bits/array_map.h


Ignore:
Timestamp:
10/05/05 15:15:47 (14 years ago)
Author:
Balazs Dezso
Branch:
default
Phase:
public
Convert:
svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@2230
Message:

Proper sized map type

File:
1 edited

Legend:

Unmodified
Added
Removed
  • lemon/bits/array_map.h

    r1669 r1703  
    4949    typedef _Item Item;
    5050  public:
     51    typedef True AdaptibleTag;
    5152               
    5253    /// The graph type of the maps.
     
    7071  public:
    7172
     73    /// \brief Graph and Registry initialized map constructor.
     74    ///
    7275    /// Graph and Registry initialized map constructor.
    7376    ArrayMap(const Graph& _g) : graph(&_g) {
     
    8184    }
    8285
    83     /// Constructor to use default value to initialize the map.
    84 
    85     /// It constrates a map and initialize all of the the map.
    86 
     86    /// \brief Constructor to use default value to initialize the map.
     87    ///
     88    /// It constructs a map and initialize all of the the map.
    8789    ArrayMap(const Graph& _g, const Value& _v) : graph(&_g) {
    8890      Item it;
     
    9597    }
    9698
    97     /// Constructor to copy a map of the same map type.
    98      
     99    /// \brief Constructor to copy a map of the same map type.
     100    ///
     101    /// Constructor to copy a map of the same map type.     
    99102    ArrayMap(const ArrayMap& copy) : Parent(), graph(copy.graph) {
    100103      if (copy.attached()) {
     
    138141  public:
    139142
    140     ///The subscript operator. The map can be subscripted by the
    141     ///actual keys of the graph.
    142      
     143    /// \brief The subscript operator.
     144    ///
     145    /// The subscript operator. The map can be subscripted by the
     146    /// actual keys of the graph.
    143147    Value& operator[](const Key& key) {
    144148      int id = graph->id(key);
     
    146150    }
    147151               
    148 
    149     ///The const subscript operator. The map can be subscripted by the
    150     ///actual keys of the graph.
    151    
     152    /// \brief The const subscript operator.
     153    ///
     154    /// The const subscript operator. The map can be subscripted by the
     155    /// actual keys of the graph.
    152156    const Value& operator[](const Key& key) const {
    153157      int id = graph->id(key);
    154158      return values[id];
    155159    }
    156        
     160
     161    /// \brief Setter function of the map.
     162    ///
    157163    /// Setter function of the map. Equivalent with map[key] = val.
    158164    /// This is a compatibility feature with the not dereferable maps.
    159      
    160165    void set(const Key& key, const Value& val) {
    161166      (*this)[key] = val;
     
    163168
    164169  protected:
    165    
     170
    166171    /// Add a new key to the map. It called by the map registry.
    167      
    168     void add(const Key& key) {
     172        
     173    virtual void add(const Key& key) {
    169174      int id = graph->id(key);
    170175      if (id >= capacity) {
     
    189194    }
    190195
    191     void add(const std::vector<Key>& keys) {
     196    virtual void add(const std::vector<Key>& keys) {
    192197      int max_id = -1;
    193198      for (int i = 0; i < (int)keys.size(); ++i) {
     
    230235    /// Erase a key from the map. It called by the map registry.
    231236     
    232     void erase(const Key& key) {
     237    virtual void erase(const Key& key) {
    233238      int id = graph->id(key);
    234239      allocator.destroy(&(values[id]));
    235240    }
    236241
    237     void erase(const std::vector<Key>& keys) {
     242    virtual void erase(const std::vector<Key>& keys) {
    238243      for (int i = 0; i < (int)keys.size(); ++i) {
    239244        int id = graph->id(keys[i]);
     
    242247    }
    243248
    244     void build() {
     249    virtual void build() {
    245250      allocate_memory();
    246251      Item it;
     
    251256    }
    252257
    253     void clear() {     
     258    virtual void clear() {     
    254259      if (capacity != 0) {
    255260        Item it;
Note: See TracChangeset for help on using the changeset viewer.