COIN-OR::LEMON - Graph Library

Ignore:
Timestamp:
04/22/04 18:36:57 (17 years ago)
Author:
Balazs Dezso
Branch:
default
Phase:
public
Convert:
svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@507
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/work/deba/node_map_registry.h

    r340 r377  
    44#include <vector>
    55
     6template <typename G, typename K>
     7class NodeMapRegistry;
     8
    69#include "node_map_base.h"
    710
    8 template <typename G, typename E>
     11template <typename G, typename K>
    912class NodeMapRegistry {
    1013public:
    1114        typedef G Graph;
    12         typedef E Node
     15        typedef K Node;
    1316       
    14         typedef NodeMapBase<Graph, Node> NodeMapBase;
     17        typedef NodeMapBase<Graph, Node> MapBase;
     18        friend class MapBase;
    1519
    1620protected:
    17         typedef std::vector<NodeMapBase*> Container;
     21       
     22        Graph* graph;
     23
     24        typedef std::vector<MapBase*> Container;
    1825       
    1926        Container container;
    20        
    21         void add(NodeMapBase& map_base) {
     27
     28public:
     29
     30        NodeMapRegistry(Graph g) : graph(&g) {}
     31
     32        void add(MapBase& map_base) {
    2233                if (map_base.graph) {
    2334                        map_base.graph->node_maps.erase(map_base);
    2435                }
    2536                container.push_back(&map_base);
    26                 map_base.graph = this;
     37                map_base.graph = graph;
    2738                map_base.graph_index = container.size()-1;
    2839        }
    2940       
    30         void erase(NodeMapBase& map_base) {
    31                 if (map_base.graph != this) return;
     41        void erase(MapBase& map_base) {
    3242                container.back()->graph_index = map_base.graph_index;
    3343                container[map_base.graph_index] = container.back();
     
    3545                map_base.graph = 0;
    3646        }
     47
    3748       
    3849        void add(Node& node) {
     
    5061        }
    5162
    52         friend class NodeMapBase;
    5363};
    5464
Note: See TracChangeset for help on using the changeset viewer.